summaryrefslogtreecommitdiffstats
path: root/nova/openstack
diff options
context:
space:
mode:
authorYun Mao <yunmao@gmail.com>2012-08-30 14:55:13 -0400
committerYun Mao <yunmao@gmail.com>2012-08-31 13:39:29 -0400
commit4082c8375a6ae7e7e67c7ad2e263be2d5fc3dd1f (patch)
treec4754f7470f4ca9bff17c79129a1f50348a4f585 /nova/openstack
parent3dd31e5a55c9932a3073d9988840066c0a7b87d0 (diff)
downloadnova-4082c8375a6ae7e7e67c7ad2e263be2d5fc3dd1f.tar.gz
nova-4082c8375a6ae7e7e67c7ad2e263be2d5fc3dd1f.tar.xz
nova-4082c8375a6ae7e7e67c7ad2e263be2d5fc3dd1f.zip
Address race condition from concurrent task state update
task_state acts like a guard to avoid concurrent tasks to be scheduled. There might be two race conditions: 1) two tasks are concurrently accepted by api, check task_state to be None and allow the tasks to be executed concurrently. 2) one ordinary task is running, so that task_state is set. The delete task is accepted at API, and will "take over" and change task_state to DELETING. However the first task may continue to update task_state or set it to None as it finishes. This patch specifies current expected task_state when updating task_state. If unexpected state is met, abort the task without updating. Various compute tests are fixed accordingly to set the pre condition of the task state. Part of bug 1037372 Change-Id: I5fdf0946c728a47febb56ad468043a828b2736c8
Diffstat (limited to 'nova/openstack')
0 files changed, 0 insertions, 0 deletions