cc8b51e1e16f6bdc7d6c0e571e2002e70cde098d
The threading-compatible eventlet Event class has a race condition on the wait method. If greenthread A is blocked on the wait, but another greenthread B calls clear() and then set(), B calls self._event.send(), but A is waiting on a different eventlet Event which is no longer used by the oslo.service Event... To resolve this, when clearing an Event trigger the underlying eventlet Event immediately, then have the wait() method resume waiting on the new eventlet Event. Change-Id: I81579e2977bb965a5398a2cb4e3e24f5671e856a Co-Authored-By: Victor Stinner <vstinner@redhat.com> Co-Authored-By: Hervé Beraud <hberaud@redhat.com> Closes-Bug: #1805706
Team and repository tags
oslo.utils
The oslo.utils library provides support for common utility type functions, such as encoding, exception handling, string manipulation, and time handling.
- Free software: Apache license
- Documentation: https://docs.openstack.org/oslo.utils/latest/
- Source: https://git.openstack.org/cgit/openstack/oslo.utils
- Bugs: https://bugs.launchpad.net/oslo.utils
- Release notes: https://docs.openstack.org/releasenotes/oslo.utils/
Description
Languages
Python
100%