https://blogs.gentoo.org/ago/2020/07/04/gentoo-tinderbox/ Issue: dev-python/Frozen-Flask-0.18-r1 fails tests (lto). Discovered on: amd64 (internal ref: lto_tinderbox) NOTE: This machine uses lto with CFLAGS=-flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing Here is a bit of explanation: -Werror=lto-type-mismatch: User to find possible runtime issues in packages. It likely means the package is unsafe to build & use with LTO. For projects using the same identifier but with different types across different files, they must be fixed to be consistent across the codebase. -Werror=odr: Used to find possible runtime issues in packages. These bugs are a problem anyway but may be even worse when combined with LTO. C++ code must comply with the One Definition Rule (ODR) - see https://en.cppreference.com/w/cpp/language/definition#One_Definition_Rule. -Werror=strict-aliasing: Used to find possible runtime issues in packages. These bugs are a problem anyway but may be even worse when combined with LTO. Workarounds: - If upstream is friendly and still active, file a bug upstream. For emulators, codecs, games, or multimedia packages, it may be worth just applying a workaround instead, as upstreams sometimes aren't receptive to these bugs (VALID FOR ALL). - Use the new 'filter-lto' from flag-o-matic.eclass as it's likely to be unsafe with LTO (VALID FOR lto-type-mismatch - odr). - Fix it yourself if interested, of course (VALID FOR ALL). - Append-flags -fno-strict-aliasing (VALID FOR strict-aliasing). - Use memcpy() but a union is sometimes suitable too (VALID FOR strict-aliasing). - -fstrict-aliasing is implied by -O2, so this must be addressed in some form (VALID FOR strict-aliasing). See also: https://marc.info/?l=gentoo-dev&m=165639574126280&w=2
Created attachment 803386 [details] build.log build log and emerge --info
Error(s) that match a know pattern: AssertionError: Popped wrong app context. (<flask.ctx.AppContext object at 0x00007fe34e2f6138> instead of <flask.ctx.AppContext object at 0x00007fe34cbf4170>) FAILED (errors=1) RuntimeError: Working outside of request context.
Logs clearly indicate the problem has nothing to do with LTO. Indeed, the package does not compile any code to begin with. ====================================================================== ERROR: test_ignore_pattern (flask_frozen.tests.TestWithoutUrlForLog) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/pypy3.9/site-packages/flask/ctx.py", line 399, in pop self.app.do_teardown_request(exc) File "/usr/lib/pypy3.9/site-packages/flask/app.py", line 2370, in do_teardown_request for name in chain(request.blueprints, (None,)): File "/usr/lib/pypy3.9/site-packages/werkzeug/local.py", line 316, in __get__ obj = instance._get_current_object() # type: ignore[misc] File "/usr/lib/pypy3.9/site-packages/werkzeug/local.py", line 513, in _get_current_object raise RuntimeError(unbound_message) from None RuntimeError: Working outside of request context. This typically means that you attempted to use functionality that needed an active HTTP request. Consult the documentation on testing for information about how to avoid this problem. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/var/tmp/portage/dev-python/Frozen-Flask-0.18-r1/work/Frozen-Flask-0.18/flask_frozen/tests.py", line 238, in test_ignore_pattern self._extra_files(ignore=['extr*'], removed=False) # Match File "/var/tmp/portage/dev-python/Frozen-Flask-0.18-r1/work/Frozen-Flask-0.18/flask_frozen/tests.py", line 255, in _extra_files freezer.freeze() File "/var/tmp/portage/dev-python/Frozen-Flask-0.18-r1/work/Frozen-Flask-0.18/flask_frozen/__init__.py", line 205, in freeze return set(page.url for page in self.freeze_yield()) File "/var/tmp/portage/dev-python/Frozen-Flask-0.18-r1/work/Frozen-Flask-0.18/flask_frozen/__init__.py", line 205, in <genexpr> return set(page.url for page in self.freeze_yield()) File "/var/tmp/portage/dev-python/Frozen-Flask-0.18-r1/work/Frozen-Flask-0.18/flask_frozen/__init__.py", line 183, in freeze_yield for url, endpoint, last_modified in self._generate_all_urls(): File "/var/tmp/portage/dev-python/Frozen-Flask-0.18-r1/work/Frozen-Flask-0.18/flask_frozen/__init__.py", line 274, in _generate_all_urls yield url, endpoint, last_modified File "/usr/lib/pypy3.9/site-packages/flask/ctx.py", line 432, in __exit__ self.pop(exc_value) File "/usr/lib/pypy3.9/site-packages/flask/ctx.py", line 405, in pop ctx = _cv_request.get() File "/usr/lib/pypy3.9/_contextvars.py", line 130, in get raise LookupError LookupError ---------------------------------------------------------------------- Ran 187 tests in 23.020s FAILED (errors=1) * ERROR: dev-python/Frozen-Flask-0.18-r1::gentoo failed (test phase): * Tests failed with pypy3