Bug 1594248 - python-eventlet FTBFS in Python 3.7
Summary: python-eventlet FTBFS in Python 3.7
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-eventlet
Version: rawhide
Hardware: Unspecified
OS: Unspecified
urgent
unspecified
Target Milestone: ---
Assignee: Kevin Fenzi
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PYTHON37 1575434
TreeView+ depends on / blocked
 
Reported: 2018-06-22 12:49 UTC by Miro Hrončok
Modified: 2018-07-17 12:22 UTC (History)
5 users (show)

Fixed In Version: python-eventlet-0.23.0-1.fc29
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-07-17 12:22:43 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Python 33996 0 None None None 2018-06-29 12:43:30 UTC

Description Miro Hrončok 2018-06-22 12:49:21 UTC
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

Comment 1 Miro Hrončok 2018-06-28 22:54:07 UTC
Bump.

Comment 2 Kevin Fenzi 2018-06-28 23:55:15 UTC
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. ;(

Comment 3 Kevin Fenzi 2018-06-29 00:00:52 UTC
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)

Comment 4 Victor Stinner 2018-06-29 12:43:31 UTC
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

Comment 5 Miro Hrončok 2018-07-02 18:19:14 UTC
The side tag is no more. Once fixed, build in regular rawhide.

Comment 6 Victor Stinner 2018-07-03 15:38:44 UTC
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)

Comment 7 Miro Hrončok 2018-07-03 16:56:24 UTC
Greenlet fix is there, however see https://github.com/eventlet/eventlet/issues/475 for more issues.

Comment 8 Miro Hrončok 2018-07-12 13:42:48 UTC
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.


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