XenAPI: Race condition in wait for coalesce
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
Bob Ball |
Bug Description
wait for coalesce scans the SR then checks if the GC has finished.
The GC might finish between the two calls, so the state of the system is pre-GC but the GC claims not to be running.
This is a race which can cause an error when actually the state is now correct.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
2014-02-20 20:26:55.336 TRACE oslo.messaging.
Changed in nova: | |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | icehouse-3 → 2014.1 |
It's also not clear that the new behaviour is correct. Consider reverting to the old behaviour.
An alternative might be to walk the VDI path and test to see if more coalescing is possible rather than waiting for a specific coalesce.