Able to aquire the semaphore used in lockutils.synchronized_with_prefix twice at the same time
Bug #1367941 reported by
Joe Gordon
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Invalid
|
Low
|
Unassigned | ||
oslo-incubator |
Fix Released
|
Medium
|
Ben Nemec | ||
oslo.concurrency |
Fix Released
|
Medium
|
Ben Nemec |
Bug Description
In nova-compute the semaphore "compute_resources" is used in lockutils.
The "compute_resources" semaphore is acquired once at:
And then again at:
without being released in between. This means lockutils.
While https:/
Changed in nova: | |
status: | New → Confirmed |
importance: | Undecided → Critical |
Changed in oslo-incubator: | |
status: | New → Confirmed |
importance: | Undecided → Critical |
Changed in nova: | |
milestone: | none → juno-rc1 |
Changed in oslo.concurrency: | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in oslo-incubator: | |
importance: | Critical → Medium |
Changed in oslo.concurrency: | |
assignee: | nobody → Ben Nemec (bnemec) |
Changed in oslo-incubator: | |
assignee: | nobody → Ben Nemec (bnemec) |
Changed in oslo-incubator: | |
status: | Confirmed → Fix Committed |
Changed in oslo.concurrency: | |
status: | Triaged → Fix Committed |
Changed in nova: | |
status: | In Progress → Invalid |
assignee: | Davanum Srinivas (DIMS) (dims-v) → nobody |
Changed in nova: | |
importance: | Medium → Low |
Changed in oslo.concurrency: | |
milestone: | next-juno → next-kilo |
Changed in oslo-incubator: | |
status: | Fix Committed → Fix Released |
Changed in oslo.concurrency: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Hmm, I have not been able to reproduce this with lockutils and eventlet. I modified one of the existing test cases for verifying that multiple threads can't execute at the same time and it seems to work fine. I'll attach the test file that I created in incubator/ tests/unit so everyone can take a look and tell me if I screwed anything up.
I ran it with "tox -e all -- --until-failure test_with_eventlet" and it didn't fail once in the time I ran it. If I remove the synchronized decorator it fails immediately, as expected.