Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Patch Set 3: > Patch Set 3: > > > Patch Set 2: > > > > > Patch Set 2: > > > > > > expected, but only nova is good > > > > I'm looking at this and have found that we're hitting this issue again: > > > > harlowja/fasteners#36 > > > > due to this commit which was released in fasteners==0.15: > > > > harlowja/fasteners@467ed75 > > > > Inside of the nova test fixture, we are somehow getting the unpatched version of threading.current_thread instead of the eventlet version that we need. This implies that at the time of the creation of our ReaderWriterLock inside the fixture, the threading module is not eventlet monkey patched: > > > > harlowja/fasteners#36 (comment) > > > > I don't know how or why this is the case, same as bnemec mentioned here: > > > > harlowja/fasteners#36 (comment) > > > > I'm going to keep looking but will need help from other nova devs who know more about eventlet. > > Correction: the threading module *is* eventlet monkey patched at that point but we are going into the fallback to the native threading.current_thread because we are apparently not in a greenthread at that point: > > https://github.com/eventlet/eventlet/blob/690464aee772b62a54eedf5275843dce30318597/eventlet/green/threading.py#L94-L96 That ^ was also wrong. I put in some print statements and see that it's weirder than I expected. We're hitting a condition where the current thread is not of type GreenThread ... it's just 'greenlet.greenlet': https://github.com/eventlet/eventlet/blob/v0.32.0/eventlet/green/threading.py#L124-L128 so it's falling back to the native threading.current_thread() method bc of that. Patch-set: 3
- Loading branch information