Skip to content

Commit

Permalink
Update git submodules
Browse files Browse the repository at this point in the history
* Update oslo.concurrency from branch 'master'
  to 796203c94846d44237d869e3b20a6cd8a3602e36
  - Prove that spawn_n with fair lock is broken
    
    The fasteners lib in version 0.15.0 removed the
    threading.current_thread workaround for eventlet[1] because eventlet
    seemed to fixed the current_thread issues tracked in [2]. However the
    fix for [2] only fixed half of the problem. The threading.current_thread
    call works if it is called from thread created by eventlet.spawn.
    However if the thread is created with eventlet.spawn_n then
    threading.current_thread is still broken and returns the ID of the
    python native thread.
    
    The fasteners' ReaderWriterLock depends heavily on
    threading.current_thread to decide which thread holds a lock and to
    allow re-entry of that thread. This leads to the situation that
    multiple threads created from spawn_n could take the same
    ReaderWriterLock at the same time.
    
    The fair internal lock in oslo.concurrency uses ReaderWriterLock and
    as a result such lock is broken for threads created with spawn_n.
    
    Note that this issue was raised with eventlet in [3] when the nova team
    detected it via a direct usage of ReaderWriterLock in the nova test
    code. As [3] did not lead to a solution in eventlet nova implemented a
    nova local fix for the test code in [4].
    
    However now we detected that oslo.concurrency is affected by this issue
    as well.
    
    This patch adds tests to show the scope of the problem.
    
    Note that the coverage tox target is changed to explicitly enable native
    threading otherwise it runs eventlet specific tests in a native
    environment.
    
    Also note that [5] was opened to reintroduce the workaround[1] in fasteners.
    
    [1] harlowja/fasteners@467ed75
    [2] eventlet/eventlet#172
    [3] eventlet/eventlet#731
    [4] https://review.opendev.org/c/openstack/nova/+/813114
    [5] harlowja/fasteners#96
    
    Related-Bug: #1988311
    Change-Id: Ibc193c855b49b95b46ebd2aac82ea89e33f885f0
  • Loading branch information
gibizer authored and openstack-gerrit committed Sep 6, 2022
1 parent 5ce78a2 commit 5b4894e
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion oslo.concurrency

0 comments on commit 5b4894e

Please sign in to comment.