Description of problem: A build of python-eventlet in the Python 3.7 side tag hangs. Version-Release number of selected component (if applicable): python-eventlet-0.23.0-1.fc29 (but also 0.23.0). Sometimes it segfaults instead. How reproducible: fedpkg build --target=f29-python https://koji.fedoraproject.org/koji/taskinfo?taskID=27780937 https://koji.fedoraproject.org/koji/taskinfo?taskID=27780927 https://koji.fedoraproject.org/koji/taskinfo?taskID=27780641 https://koji.fedoraproject.org/koji/taskinfo?taskID=27780453 https://koji.fedoraproject.org/koji/taskinfo?taskID=27719088 This blocks other packages. $ dnf repoquery --disablerepo='*' --enablerepo='rawhide-source' --whatrequires python3-eventlet python-cassandra-driver-0:3.14.0-1.fc29.src python-detox-0:0.12-2.fc29.src python-os-win-0:2.2.0-4.fc29.src python-oslo-concurrency-0:3.25.0-1.fc28.src python-oslo-privsep-0:1.13.0-5.fc29.src python-oslo-reports-0:1.17.0-3.fc28.src python-oslo-rootwrap-0:5.13.0-1.fc28.src python-oslo-versionedobjects-0:1.21.0-3.fc28.src python-ryu-0:4.15-1.fc27.src
Bump.
This seems to be: https://github.com/eventlet/eventlet/issues/475 upstream. Sounds like they might need some resources to test with python 3.7? Or perhaps they have it now that it's released... The test it hangs in (and uses 100% cpu until stopped) is: def test_wait_each_exc(): pool = DAGPool() pool.spawn("a", (), raiser, BogusError("bogus")) with assert_raises(PropagateError): for k, v in pool.wait_each("a"): pass with assert_raises(PropagateError): for k, v in pool.wait_each(): pass and the test after it. If I comment out those two tests I next hit: test_accept_deflate_ext_context_takeover_13 (tests.websocket_new_test.TestWebSocketWithCompression) ... /var/tmp/rpm-tmp.mxJJ4m: line 34: 11070 Segmentation fault (core dumped) nosetests-3.7 -v So, seems like there is definitely some upstream work here. ;(
The core dump has: Stack trace of thread 11070: #0 0x00007fffbca51654 n/a (/usr/lib64/libpython3.7m.so.1.0) #1 0x00007fffbca51524 n/a (/usr/lib64/libpython3.7m.so.1.0) #2 0x00007fffbca516cc n/a (/usr/lib64/libpython3.7m.so.1.0) #3 0x00007fffbcb7cb04 n/a (/usr/lib64/libpython3.7m.so.1.0) #4 0x00007fffbc9d28dc n/a (/usr/lib64/libpython3.7m.so.1.0) #5 0x00007fffbca130d4 n/a (/usr/lib64/libpython3.7m.so.1.0) #6 0x00007fffbcb7c668 n/a (/usr/lib64/libpython3.7m.so.1.0) #7 0x00007fffbca4386c n/a (/usr/lib64/libpython3.7m.so.1.0) #8 0x00007fffbca771a8 n/a (/usr/lib64/libpython3.7m.so.1.0) #9 0x00007fffbca77324 n/a (/usr/lib64/libpython3.7m.so.1.0) #10 0x00007fffbc9da184 n/a (/usr/lib64/libpython3.7m.so.1.0) #11 0x00007fffbca130d4 n/a (/usr/lib64/libpython3.7m.so.1.0) #12 0x00007fffbcae4d6c n/a (/usr/lib64/libpython3.7m.so.1.0) #13 0x00007fffbcae502c n/a (/usr/lib64/libpython3.7m.so.1.0) #14 0x00007fffbc9d9f18 n/a (/usr/lib64/libpython3.7m.so.1.0) #15 0x00007fffbca130d4 n/a (/usr/lib64/libpython3.7m.so.1.0) #16 0x00007fffbcae4d6c n/a (/usr/lib64/libpython3.7m.so.1.0) #17 0x00007fffbcae5a38 n/a (/usr/lib64/libpython3.7m.so.1.0) #18 0x00007fffbcae5db4 n/a (/usr/lib64/libpython3.7m.so.1.0) #19 0x00007fffbcae6110 n/a (/usr/lib64/libpython3.7m.so.1.0) #20 0x00007fffbcae6198 n/a (/usr/lib64/libpython3.7m.so.1.0) #21 0x00007fffbca50fc0 n/a (/usr/lib64/libpython3.7m.so.1.0) #22 0x00007fffbc9d2548 n/a (/usr/lib64/libpython3.7m.so.1.0) #23 0x00007fffbca130d4 n/a (/usr/lib64/libpython3.7m.so.1.0) #24 0x00007fffbcae4d6c n/a (/usr/lib64/libpython3.7m.so.1.0) #25 0x00007fffbcae5a38 n/a (/usr/lib64/libpython3.7m.so.1.0) #26 0x00007fffbcae5db4 n/a (/usr/lib64/libpython3.7m.so.1.0) #27 0x00007fffbcae6110 n/a (/usr/lib64/libpython3.7m.so.1.0) #28 0x00007fffbcb30490 n/a (/usr/lib64/libpython3.7m.so.1.0) #29 0x00007fffbcae52f8 n/a (/usr/lib64/libpython3.7m.so.1.0) #30 0x00007fffbc9d4cec n/a (/usr/lib64/libpython3.7m.so.1.0) #31 0x00007fffbca130d4 n/a (/usr/lib64/libpython3.7m.so.1.0) #32 0x00007fffbc9d0ee4 n/a (/usr/lib64/libpython3.7m.so.1.0) #33 0x00007fffbc9dafbc n/a (/usr/lib64/libpython3.7m.so.1.0) #34 0x00007fffbca130d4 n/a (/usr/lib64/libpython3.7m.so.1.0) #35 0x00007fffbc9d0ee4 n/a (/usr/lib64/libpython3.7m.so.1.0) #36 0x00007fffbcae5b80 n/a (/usr/lib64/libpython3.7m.so.1.0) #37 0x00007fffbcae5db4 n/a (/usr/lib64/libpython3.7m.so.1.0) #38 0x00007fffbcae6110 n/a (/usr/lib64/libpython3.7m.so.1.0) #39 0x00007fffbcae6198 n/a (/usr/lib64/libpython3.7m.so.1.0) #40 0x00007fffbca50fc0 n/a (/usr/lib64/libpython3.7m.so.1.0) #41 0x00007fffbc9d2548 n/a (/usr/lib64/libpython3.7m.so.1.0) #42 0x00007fffbca130d4 n/a (/usr/lib64/libpython3.7m.so.1.0) #43 0x00007fffbcae4d6c n/a (/usr/lib64/libpython3.7m.so.1.0) #44 0x00007fffbcae5a38 n/a (/usr/lib64/libpython3.7m.so.1.0) #45 0x00007fffbcae5db4 n/a (/usr/lib64/libpython3.7m.so.1.0) #46 0x00007fffbcae6110 n/a (/usr/lib64/libpython3.7m.so.1.0) #47 0x00007fffbcb30490 n/a (/usr/lib64/libpython3.7m.so.1.0) #48 0x00007fffbcae52f8 n/a (/usr/lib64/libpython3.7m.so.1.0) #49 0x00007fffbc9d4cec n/a (/usr/lib64/libpython3.7m.so.1.0) #50 0x00007fffbca130d4 n/a (/usr/lib64/libpython3.7m.so.1.0) #51 0x00007fffbc9d0ee4 n/a (/usr/lib64/libpython3.7m.so.1.0) #52 0x00007fffbcae5b80 n/a (/usr/lib64/libpython3.7m.so.1.0) #53 0x00007fffbcae5db4 n/a (/usr/lib64/libpython3.7m.so.1.0) #54 0x00007fffbcae6110 n/a (/usr/lib64/libpython3.7m.so.1.0) #55 0x00007fffbcae6198 n/a (/usr/lib64/libpython3.7m.so.1.0) #56 0x00007fffbca50fc0 n/a (/usr/lib64/libpython3.7m.so.1.0) #57 0x00007fffbc9d2548 n/a (/usr/lib64/libpython3.7m.so.1.0) #58 0x00007fffbca130d4 n/a (/usr/lib64/libpython3.7m.so.1.0) #59 0x00007fffbcae4d6c n/a (/usr/lib64/libpython3.7m.so.1.0) #60 0x00007fffbcae5a38 n/a (/usr/lib64/libpython3.7m.so.1.0) #61 0x00007fffbcae5db4 n/a (/usr/lib64/libpython3.7m.so.1.0) #62 0x00007fffbcae6110 n/a (/usr/lib64/libpython3.7m.so.1.0) #63 0x00007fffbcb30490 n/a (/usr/lib64/libpython3.7m.so.1.0)
I created a "short" (700 lines) reproducer script which only depends on greenlet (no longer on eventlet). I reported the crash in Python, IMHO it's a regression of Python 3.7.0: https://bugs.python.org/issue33996
The side tag is no more. Once fixed, build in regular rawhide.
The bug is in greenlet, not in eventlet: * greenlet bug: https://github.com/python-greenlet/greenlet/issues/131 * my greenlet fix: https://github.com/python-greenlet/greenlet/pull/132 See also: * eventlet bug: https://github.com/eventlet/eventlet/issues/475 * Python bug: https://bugs.python.org/issue33996 (closed)
Greenlet fix is there, however see https://github.com/eventlet/eventlet/issues/475 for more issues.
I've built it with https://github.com/eventlet/eventlet/pull/506 because I'm desperate. We can later replace the patch with what get's merged to upstream.