Bug 1709800 - python-priority FTBFS with Python 3.8
Summary: python-priority FTBFS with Python 3.8
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-priority
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Robert-André Mauchin 🐧
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1717663 (view as bug list)
Depends On: 1609770
Blocks: PYTHON38
TreeView+ depends on / blocked
 
Reported: 2019-05-14 10:53 UTC by Lumír Balhar
Modified: 2019-09-10 18:25 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-09-10 18:25:53 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Full build log from COPR (3.49 KB, text/plain)
2019-05-14 10:53 UTC, Lumír Balhar
no flags Details

Description Lumír Balhar 2019-05-14 10:53:45 UTC
Created attachment 1568385 [details]
Full build log from COPR

python-priority-1.3.0-5.fc31 fails to build from source in Fedora rawhide with Python 3.8. The test failure is:

+ /usr/bin/python3 -m pytest -k 'not test_period_of_repetition'
BUILDSTDERR: Traceback (most recent call last):
BUILDSTDERR:   File "/usr/lib64/python3.8/runpy.py", line 192, in _run_module_as_main
BUILDSTDERR:     return _run_code(code, main_globals, None,
BUILDSTDERR:   File "/usr/lib64/python3.8/runpy.py", line 85, in _run_code
BUILDSTDERR:     exec(code, run_globals)
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/pytest.py", line 89, in <module>
BUILDSTDERR:     raise SystemExit(pytest.main())
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 60, in main
BUILDSTDERR:     config = _prepareconfig(args, plugins)
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 200, in _prepareconfig
BUILDSTDERR:     return pluginmanager.hook.pytest_cmdline_parse(
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/pluggy/hooks.py", line 289, in __call__
BUILDSTDERR:     return self._hookexec(self, self.get_hookimpls(), kwargs)
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 68, in _hookexec
BUILDSTDERR:     return self._inner_hookexec(hook, methods, kwargs)
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 59, in <lambda>
BUILDSTDERR:     self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 203, in _multicall
BUILDSTDERR:     gen.send(outcome)
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/_pytest/helpconfig.py", line 93, in pytest_cmdline_parse
BUILDSTDERR:     config = outcome.get_result()
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 80, in get_result
BUILDSTDERR:     raise ex[1].with_traceback(ex[2])
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/pluggy/callers.py", line 187, in _multicall
BUILDSTDERR:     res = hook_impl.function(*args)
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 679, in pytest_cmdline_parse
BUILDSTDERR:     self.parse(args)
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 896, in parse
BUILDSTDERR:     self._preparse(args, addopts=addopts)
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/_pytest/config/__init__.py", line 841, in _preparse
BUILDSTDERR:     self.pluginmanager.load_setuptools_entrypoints("pytest11")
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/pluggy/manager.py", line 274, in load_setuptools_entrypoints
BUILDSTDERR:     plugin = ep.load()
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2434, in load
BUILDSTDERR:     return self.resolve()
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2440, in resolve
BUILDSTDERR:     module = __import__(self.module_name, fromlist=['__name__'], level=0)
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/hypothesis/__init__.py", line 29, in <module>
BUILDSTDERR:     from hypothesis.core import given, find, example, seed, reproduce_failure, PrintSettings
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/hypothesis/core.py", line 37, in <module>
BUILDSTDERR:     import hypothesis.strategies as st
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/hypothesis/strategies.py", line 20, in <module>
BUILDSTDERR:     from hypothesis._strategies import (
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/hypothesis/_strategies.py", line 265, in <module>
BUILDSTDERR:     def nothing():
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/hypothesis/_strategies.py", line 182, in cacheable
BUILDSTDERR:     def cached_strategy(*args, **kwargs):
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/hypothesis/internal/reflection.py", line 617, in accept
BUILDSTDERR:     return impersonate(target)(
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/hypothesis/internal/reflection.py", line 603, in accept
BUILDSTDERR:     f.__code__ = update_code_location(
BUILDSTDERR:   File "/usr/lib/python3.8/site-packages/hypothesis/internal/compat.py", line 409, in update_code_location
BUILDSTDERR:     return type(code)(*unpacked)
BUILDSTDERR: TypeError: an integer is required (got type bytes)
RPM build errors:
BUILDSTDERR: error: Bad exit status from /var/tmp/rpm-tmp.WNzdbv (%check)
BUILDSTDERR:     Bad exit status from /var/tmp/rpm-tmp.WNzdbv (%check)
Child return code was: 1

Comment 1 Miro Hrončok 2019-05-14 12:37:25 UTC
hypothesis bug

Comment 2 Miro Hrončok 2019-05-28 11:01:09 UTC
Got:

+ /usr/bin/python2 -m pytest
============================= test session starts ==============================
platform linux2 -- Python 2.7.16, pytest-4.4.1, py-1.8.0, pluggy-0.11.0
hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/builddir/build/BUILD/priority-1.3.0/.hypothesis/examples')
rootdir: /builddir/build/BUILD/priority-1.3.0
plugins: hypothesis-4.23.4
collected 162 items

test/test_priority.py .................................................. [ 30%]
........................................................................ [ 75%]
......................................F.                                 [100%]

=================================== FAILURES ===================================
_______________ TestPriorityTreeOutput.test_period_of_repetition _______________

self = <test_priority.TestPriorityTreeOutput object at 0x7fef65fd8150>

    @given(STREAMS_AND_WEIGHTS)
>   def test_period_of_repetition(self, streams_and_weights):
        """
        The period of repetition of a priority sequence is given by the sum of
        the weights of the streams. Once that many values have been pulled out
        the sequence repeats identically.

test/test_priority.py:492: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python2.7/site-packages/hypothesis/core.py:600: in execute
    % (test.__name__, text_repr[0])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <hypothesis.core.StateForActualGivenExecution object at 0x7fef65fd8510>
message = 'Hypothesis test_period_of_repetition(self=<test_priority.TestPriorityTreeOutput at 0x7fef65fd8150>, streams_and_weigh...70),\n (1, 94),\n (35, 236)]) produces unreliable results: Falsified on the first call but did not on a subsequent one'

    def __flaky(self, message):
        if len(self.falsifying_examples) <= 1:
>           raise Flaky(message)
E           Flaky: Hypothesis test_period_of_repetition(self=<test_priority.TestPriorityTreeOutput at 0x7fef65fd8150>, streams_and_weights=[(2, 228),
E            (9, 251),
E            (58, 45),
E            (107, 67),
E            (4, 204),
E            (257, 105),
E            (46, 170),
E            (1, 94),
E            (35, 236)]) produces unreliable results: Falsified on the first call but did not on a subsequent one

/usr/lib/python2.7/site-packages/hypothesis/core.py:770: Flaky
---------------------------------- Hypothesis ----------------------------------
Falsifying example: test_period_of_repetition(self=<test_priority.TestPriorityTreeOutput at 0x7fef65fd8150>, streams_and_weights=[(2, 228),
 (9, 251),
 (58, 45),
 (107, 67),
 (4, 204),
 (257, 105),
 (46, 170),
 (1, 94),
 (35, 236)])
Unreliable test timings! On an initial run, this test took 270.63ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 196.96 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None.

You can reproduce this example by temporarily adding @reproduce_failure('4.23.4', 'AHQAAALjQQAAEfoBAAByLAEAANVCAQAABssBBBYCAGgBAABbqQEABABdAQAAAAEAD0XrAA==') as a decorator on your test case
==================== 1 failed, 161 passed in 806.56 seconds ====================


I think I can try to build this package until it does, but it would be better to remove this check.

Comment 3 Miro Hrončok 2019-05-28 11:11:18 UTC
The package built.

Comment 4 Miro Hrončok 2019-06-05 21:59:56 UTC
*** Bug 1717663 has been marked as a duplicate of this bug. ***

Comment 5 Miro Hrončok 2019-06-05 22:56:05 UTC
It now gives me almost constant failures in Copr. Shall we report to upstream and skip it?

Comment 7 Miro Hrončok 2019-07-10 11:39:22 UTC
This might not be enough, the build is still quite flaky :(

Comment 8 Ben Cotton 2019-08-13 19:04:20 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to 31.

Comment 9 Miro Hrončok 2019-08-14 22:24:37 UTC
The coordinated rebuild of Python 3.8 has started in the `f32-python` side tag.

If you figure out how to rebuild this package, please don't rebuild it in regular rawhide, but use the side tag instead:

    on branch master:
    $ fedpkg build --target=f32-python

To wait for a build to show up in the side tag, do:

    $ koji wait-repo f32-python --build=<nvr>

Where <nvr> is name-version-release of the source package, e.g. python-foo-1.1-2.fc32.

An updated mock config is posted at:
http://copr.fedorainfracloud.org/coprs/g/python/python3.8/

Note that it will take a while before the essential packages are rebuilt, so don't expect all your dependencies to be available right away.

Thanks. Let us know if you need up to date info, or if you have any questions.



PS this message is mass posted to all the bugs that block the PYTHON38 bug. If this is also a Fedora 31 FTBFS bug and you manage to fix it, you can do a f31 build as usual:

    on branch f31:
    $ fedpkg build

Comment 10 Miro Hrončok 2019-08-21 16:35:22 UTC
The f32-python side tag has been merged. In order to rebuild the package, do it in regular rawhide, but please wait until python3-3.8 is tagged:

  $ koji wait-repo f32-build --build python3-3.8.0~b3-3.fc32


If your built already started in f32-python, after it is finished, please tag it to rawhide with:

  $ koji tag-build f32-pending <nvr>

For example:

  $ koji tag-build f32-pending libreoffice-6.3.0.4-3.fc32

Thanks!

(This comment is mass posted to all bugzillas blocking the PYTHON38 tracking bug.)

Comment 11 Miro Hrončok 2019-08-21 17:29:24 UTC
(Python 3.8 has landed in the rawhide buildroot.)

Comment 12 Miro Hrončok 2019-09-10 18:25:53 UTC
This was rebuild with Python 3.8 and I'm closing it in bulk.

In case you wanted to keep this bugzilla open because the fix is not ideal, please reopen. Thanks.


Note You need to log in before you can comment on or make changes to this bug.