Bug 1498171

Summary: "RuntimeError: no suitable implementation for this system" in monotonic code
Product: [Fedora] Fedora Reporter: Javier Peña <jpena>
Component: python-eventletAssignee: Haïkel Guémar <karlthered>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: apevec, ignatenko, karlthered, kevin, shamardin
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: 2017-10-05 07:35:39 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Javier Peña 2017-10-03 15:54:04 UTC
Description of problem:
When building some packages that depend on python-eventlet, we get the following error:

DEBUG: Traceback (most recent call last):
DEBUG:   File "/usr/lib64/python2.7/runpy.py", line 174, in _run_module_as_main
DEBUG:     "__main__", fname, loader, pkg_name)
DEBUG:   File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
DEBUG:     exec code in run_globals
DEBUG:   File "/usr/lib/python2.7/site-packages/subunit/run.py", line 149, in <module>
DEBUG:     main()
DEBUG:   File "/usr/lib/python2.7/site-packages/subunit/run.py", line 145, in main
DEBUG:     stdout=stdout, exit=False)
DEBUG:   File "/usr/lib/python2.7/site-packages/testtools/run.py", line 192, in __init__
DEBUG:     runner.list(self.test, loader=self.testLoader)
DEBUG:   File "/usr/lib/python2.7/site-packages/subunit/run.py", line 77, in list
DEBUG:     result, errors = self._list(test)
DEBUG:   File "/usr/lib/python2.7/site-packages/subunit/run.py", line 95, in _list
DEBUG:     stream = os.fdopen(fileno, 'wb', 0)
DEBUG:   File "/usr/lib/python2.7/site-packages/eventlet/green/os.py", line 28, in fdopen
DEBUG:     return greenio.GreenPipe(fd, *args, **kw)
DEBUG:   File "/usr/lib/python2.7/site-packages/eventlet/greenio/py2.py", line 41, in __init__
DEBUG:     super(GreenPipe, self).__init__(_SocketDuckForFd(fileno), mode, bufsize)
DEBUG:   File "/usr/lib/python2.7/site-packages/eventlet/greenio/py2.py", line 128, in __init__
DEBUG:     notify_opened(fileno)
DEBUG:   File "/usr/lib/python2.7/site-packages/eventlet/hubs/__init__.py", line 189, in notify_opened
DEBUG:     hub = get_hub()
DEBUG:   File "/usr/lib/python2.7/site-packages/eventlet/hubs/__init__.py", line 117, in get_hub
DEBUG:     hub = _threadlocal.hub = _threadlocal.Hub()
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_service/__init__.py", line 36, in service_hub
DEBUG:     hub = eventlet.hubs.get_default_hub().Hub()
DEBUG:   File "/usr/lib/python2.7/site-packages/eventlet/hubs/__init__.py", line 38, in get_default_hub
DEBUG:     import eventlet.hubs.epolls
DEBUG:   File "/usr/lib/python2.7/site-packages/eventlet/hubs/epolls.py", line 27, in <module>
DEBUG:     from eventlet.hubs.hub import BaseHub
DEBUG:   File "/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py", line 23, in <module>
DEBUG:     from eventlet.support import greenlets as greenlet, clear_sys_exc_info, monotonic, six
DEBUG:   File "/usr/lib/python2.7/site-packages/eventlet/support/monotonic.py", line 167, in <module>
DEBUG:     raise RuntimeError('no suitable implementation for this system')

This matches what is seen in https://github.com/eventlet/eventlet/issues/401. This is in the current eventlet master, but not present in any released version.

Version-Release number of selected component (if applicable):
python2-eventlet-0.21.0-2.fc27.noarch.rpm

How reproducible: Always


Steps to Reproduce:
1. See original description in  https://github.com/eventlet/eventlet/issues/401

Actual results:
raise RuntimeError('no suitable implementation for this system')

Expected results:
It works without a RuntimeError.

Additional info:
An example of package that fails to build using a Rawhide chroot is https://trunk-primary.rdoproject.org/f25/39/3e/393ecff3451091404832dd6b8a088e1bec760101_d7e8c0d4/rpmbuild.log

Comment 1 Haïkel Guémar 2017-10-04 17:25:55 UTC
I suggest that we rebuild eventlet with the following patch I submitted upstream: https://github.com/eventlet/eventlet/pull/438

Since we have pyOpenSSL 17.3.0 in Rawhide, there's no issue in including this change. If there's no objection, I'll do a rebuild in rawhide as provenpackager.

Comment 2 Kevin Fenzi 2017-10-04 20:23:37 UTC
Feel free to push the fix, or if you prefer I can (but might not be today as I have a ton of other todos).

Comment 3 Haïkel Guémar 2017-10-04 23:31:46 UTC
I will do, just wanted to keep you updated. Patch was merged upstream anyway.
I'll reassign it to self and will continue

Comment 4 Haïkel Guémar 2017-10-05 07:35:39 UTC
Fixed in rawhide.