Bug 1706771
| Summary: | Package python-pthreading for Python 3 | ||
|---|---|---|---|
| Product: | [oVirt] ovirt-distribution | Reporter: | Sandro Bonazzola <sbonazzo> |
| Component: | python-pthreading | Assignee: | Gal Zaidman <gzaidman> |
| python-pthreading sub component: | General | QA Contact: | Lukas Svaty <lsvaty> |
| Status: | CLOSED NOTABUG | Docs Contact: | |
| Severity: | high | ||
| Priority: | high | CC: | bugs, nsoffer |
| Version: | 4.3.0 | Keywords: | Improvement |
| Target Milestone: | ovirt-4.4.0 | Flags: | sbonazzo:
ovirt-4.4?
|
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Enhancement | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2019-05-06 13:16:13 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | Integration | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1706775 | ||
|
Description
Sandro Bonazzola
2019-05-06 09:46:57 UTC
I think that we can close this as not a bug,
python-pthreading is basically used to override the python2 model threading.py
the problem that it fixes has been resolved in python3.
we need it only on python2, the only project that uses it is vdsm, and it uses it
only on python2, so there is no need to port it to python 3.
from the python-pthreading readme:
"""
Reimplement threading.Lock, RLock, and Condition with libpthread.
The pthreading module provides Lock, RLock, and Condition
synchronization objects compatible with Python native threading module.
The implementation, however, is based on POSIX thread library as
delivered by the libpthread. The provided objects are designed to be a
drop-in replacement for their respective threading counterpart.
Take a look at threading.py of Python 2. Notice that Condition.wait()
wakes 20 times a second and checks if the event has been set. This CPU
hogging has been fixed in Python 3, but is not expected to change during
Python 2 lifetime.
"""
from vdsm code:
"""
# When using Python 2, we must monkey patch threading module before importing
# any other module.
if sys.version_info[0] == 2:
import pthreading
pthreading.monkey_patch()
...
import threading
...
"""
After consulting with Dan and Sandro, we decided that this is not a bug, from the reason in comment 1 |