I think fasteners >= 0.15 + eventlet.spawn_n breaks oslo.concurrency fair locking. Here is a minimal reproduction that showing the issue: https://gist.github.com/gibizer/9051369e67fd46a20d52963dac534852
It seems it all boils down to the eventlet issue: https://github.com/eventlet/eventlet/issues/731
Nova did a test only fix in the past https://review.opendev.org/c/openstack/nova/+/813114 but something more global is needed as oslo.concurrency uses fasteners' ReaderWriterLock under the hood to implement fair locking: https://github.com/openstack/oslo.concurrency/blob/5.0.0/oslo_concurrency/lockutils.py#L287
We can try to adapt the fix from https://review.opendev.org/c/openstack/nova/+/813114 and apply it for every fair lock created by oslo.
I think fasteners >= 0.15 + eventlet.spawn_n breaks oslo.concurrency fair locking. Here is a minimal reproduction that showing the issue: https:/ /gist.github. com/gibizer/ 9051369e67fd46a 20d52963dac5348 52
It seems it all boils down to the eventlet issue: https:/ /github. com/eventlet/ eventlet/ issues/ 731
Nova did a test only fix in the past https:/ /review. opendev. org/c/openstack /nova/+ /813114 but something more global is needed as oslo.concurrency uses fasteners' ReaderWriterLock under the hood to implement fair locking: https:/ /github. com/openstack/ oslo.concurrenc y/blob/ 5.0.0/oslo_ concurrency/ lockutils. py#L287
We can try to adapt the fix from https:/ /review. opendev. org/c/openstack /nova/+ /813114 and apply it for every fair lock created by oslo.