Bug 2291634
Summary: | F41FailsToInstall: python3-beaker | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Fedora Fails To Install <fti-bugs> |
Component: | python-beaker | Assignee: | Jonathan Wright <jonathan> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | awilliam, jonathan, mhroncok |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2024-06-21 20:03:30 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 2245641, 2291971, 2291973 | ||
Bug Blocks: | 2260875, 2260877, 2244836 |
Description
Fedora Fails To Install
2024-06-12 11:21:15 UTC
The missing dependency to build this can be worked around like this: -BuildRequires: python3dist(webtest) +# BuildRequires: python3dist(webtest) -- https://bugzilla.redhat.com/2245641 -%pytest +# test_ext_redis.py needs webtest +%pytest --ignore tests/test_managers/test_ext_redis.py However, even then, tests/test_container.py fails on Python 3.13 with: =================================== FAILURES =================================== ______________________________ test_dbm_container ______________________________ totaltime = 10, expiretime = None, delay = 0 def test_dbm_container(totaltime=10, expiretime=None, delay=0): > _run_container_test(clsmap['dbm'], totaltime, expiretime, delay, False) tests/test_container.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = <class 'beaker.container.DBMNamespaceManager'>, totaltime = 10 expiretime = None, delay = 0, threadlocal = False def _run_container_test(cls, totaltime, expiretime, delay, threadlocal): print("\ntesting %s for %d secs with expiretime %s delay %d" % ( cls, totaltime, expiretime, delay)) CachedWidget.totalcreates = 0 CachedWidget.delay = delay # allow for python overhead when checking current time against expire times fudge = 10 starttime = time.time() running = [True] class RunThread(Thread): def run(self): print("%s starting" % self) if threadlocal: localvalue = Value( 'test', cls('test', data_dir='./cache'), createfunc=CachedWidget, expiretime=expiretime, starttime=starttime) localvalue.clear_value() else: localvalue = value try: while running[0]: item = localvalue.get_value() if expiretime is not None: currenttime = time.time() itemtime = item.time assert itemtime + expiretime + delay + fudge >= currenttime, \ "created: %f expire: %f delay: %f currenttime: %f" % \ (itemtime, expiretime, delay, currenttime) time.sleep(random.random() * .00001) except: running[0] = False raise print("%s finishing" % self) if not threadlocal: value = Value( 'test', cls('test', data_dir='./cache'), createfunc=CachedWidget, expiretime=expiretime, starttime=starttime) value.clear_value() else: value = None threads = [RunThread() for i in range(1, 8)] for t in threads: t.start() time.sleep(totaltime) failed = not running[0] running[0] = False for t in threads: t.join() > assert not failed, "One or more threads failed" E AssertionError: One or more threads failed E assert not True tests/test_container.py:90: AssertionError ----------------------------- Captured stdout call ----------------------------- testing <class 'beaker.container.DBMNamespaceManager'> for 10 secs with expiretime None delay 0 <RunThread(Thread-8, started 140548362995392)> starting <RunThread(Thread-9, started 140548373481152)> starting <RunThread(Thread-10, started 140548459464384)> starting <RunThread(Thread-11, started 140548469950144)> starting <RunThread(Thread-12, started 140548501407424)> starting<RunThread(Thread-13, started 140548490921664)> starting <RunThread(Thread-14, started 140548480435904)> starting <RunThread(Thread-8, started 140548362995392)> finishing _____________________________ test_dbm_container_2 _____________________________ def test_dbm_container_2(): > test_dbm_container(expiretime=12) tests/test_container.py:118: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_container.py:103: in test_dbm_container _run_container_test(clsmap['dbm'], totaltime, expiretime, delay, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = <class 'beaker.container.DBMNamespaceManager'>, totaltime = 10 expiretime = 12, delay = 0, threadlocal = False def _run_container_test(cls, totaltime, expiretime, delay, threadlocal): print("\ntesting %s for %d secs with expiretime %s delay %d" % ( cls, totaltime, expiretime, delay)) CachedWidget.totalcreates = 0 CachedWidget.delay = delay # allow for python overhead when checking current time against expire times fudge = 10 starttime = time.time() running = [True] class RunThread(Thread): def run(self): print("%s starting" % self) if threadlocal: localvalue = Value( 'test', cls('test', data_dir='./cache'), createfunc=CachedWidget, expiretime=expiretime, starttime=starttime) localvalue.clear_value() else: localvalue = value try: while running[0]: item = localvalue.get_value() if expiretime is not None: currenttime = time.time() itemtime = item.time assert itemtime + expiretime + delay + fudge >= currenttime, \ "created: %f expire: %f delay: %f currenttime: %f" % \ (itemtime, expiretime, delay, currenttime) time.sleep(random.random() * .00001) except: running[0] = False raise print("%s finishing" % self) if not threadlocal: value = Value( 'test', cls('test', data_dir='./cache'), createfunc=CachedWidget, expiretime=expiretime, starttime=starttime) value.clear_value() else: value = None threads = [RunThread() for i in range(1, 8)] for t in threads: t.start() time.sleep(totaltime) failed = not running[0] running[0] = False for t in threads: t.join() > assert not failed, "One or more threads failed" E AssertionError: One or more threads failed E assert not True tests/test_container.py:90: AssertionError ----------------------------- Captured stdout call ----------------------------- testing <class 'beaker.container.DBMNamespaceManager'> for 10 secs with expiretime 12 delay 0 <RunThread(Thread-43, started 140548480435904)> starting <RunThread(Thread-44, started 140548490921664)> starting <RunThread(Thread-45, started 140548501407424)> starting<RunThread(Thread-46, started 140548469950144)> starting <RunThread(Thread-47, started 140548459464384)> starting <RunThread(Thread-48, started 140548373481152)> starting <RunThread(Thread-49, started 140548362995392)> starting <RunThread(Thread-43, started 140548480435904)> finishing _____________________________ test_dbm_container_3 _____________________________ def test_dbm_container_3(): > test_dbm_container(expiretime=15, delay=2) tests/test_container.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_container.py:103: in test_dbm_container _run_container_test(clsmap['dbm'], totaltime, expiretime, delay, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = <class 'beaker.container.DBMNamespaceManager'>, totaltime = 10 expiretime = 15, delay = 2, threadlocal = False def _run_container_test(cls, totaltime, expiretime, delay, threadlocal): print("\ntesting %s for %d secs with expiretime %s delay %d" % ( cls, totaltime, expiretime, delay)) CachedWidget.totalcreates = 0 CachedWidget.delay = delay # allow for python overhead when checking current time against expire times fudge = 10 starttime = time.time() running = [True] class RunThread(Thread): def run(self): print("%s starting" % self) if threadlocal: localvalue = Value( 'test', cls('test', data_dir='./cache'), createfunc=CachedWidget, expiretime=expiretime, starttime=starttime) localvalue.clear_value() else: localvalue = value try: while running[0]: item = localvalue.get_value() if expiretime is not None: currenttime = time.time() itemtime = item.time assert itemtime + expiretime + delay + fudge >= currenttime, \ "created: %f expire: %f delay: %f currenttime: %f" % \ (itemtime, expiretime, delay, currenttime) time.sleep(random.random() * .00001) except: running[0] = False raise print("%s finishing" % self) if not threadlocal: value = Value( 'test', cls('test', data_dir='./cache'), createfunc=CachedWidget, expiretime=expiretime, starttime=starttime) value.clear_value() else: value = None threads = [RunThread() for i in range(1, 8)] for t in threads: t.start() time.sleep(totaltime) failed = not running[0] running[0] = False for t in threads: t.join() > assert not failed, "One or more threads failed" E AssertionError: One or more threads failed E assert not True tests/test_container.py:90: AssertionError ----------------------------- Captured stdout call ----------------------------- testing <class 'beaker.container.DBMNamespaceManager'> for 10 secs with expiretime 15 delay 2 <RunThread(Thread-50, started 140548362995392)> starting <RunThread(Thread-51, started 140548373481152)> starting<RunThread(Thread-52, started 140548459464384)> starting <RunThread(Thread-53, started 140548469950144)> starting <RunThread(Thread-54, started 140548501407424)> starting <RunThread(Thread-55, started 140548490921664)> starting <RunThread(Thread-56, started 140548480435904)> starting <RunThread(Thread-50, started 140548362995392)> finishing =========================== short test summary info ============================ FAILED tests/test_container.py::test_dbm_container - AssertionError: One or m... FAILED tests/test_container.py::test_dbm_container_2 - AssertionError: One or... FAILED tests/test_container.py::test_dbm_container_3 - AssertionError: One or... ====== 3 failed, 101 passed, 11 skipped, 28 warnings in 151.84s (0:02:31) ====== Hello, Please note that this comment was generated automatically by https://pagure.io/releng/blob/main/f/scripts/ftbfs-fti/follow-policy.py If you feel that this output has mistakes, please open an issue at https://pagure.io/releng/ This package fails to install and maintainers are advised to take one of the following actions: - Fix this bug and close this bugzilla once the update makes it to the repository. (The same script that posted this comment will eventually close this bugzilla when the fixed package reaches the repository, so you don't have to worry about it.) or - Move this bug to ASSIGNED if you plan on fixing this, but simply haven't done so yet. or - Orphan the package if you no longer plan to maintain it. If you do not take one of these actions, the process at https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/#_package_removal_for_long_standing_ftbfs_and_fti_bugs will continue. This package may be orphaned in 7+ weeks. This is the first reminder (step 3) from the policy. Don't hesitate to ask for help on https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/ if you are unsure how to fix this bug. Note, python3-beaker seems to be on a default Fedora 40 Workstation install (somehow), so this means we get a scary message on F40 to F41 upgrade: https://openqa.fedoraproject.org/tests/2693381#step/graphical_upgrade_run/11 I'll see if I can find time to look at fixing this later today. |