Improve job status assert affected by race condition
authorHrvoje Ribicic <riba@google.com>
Thu, 20 Feb 2014 14:11:32 +0000 (15:11 +0100)
committerHrvoje Ribicic <riba@google.com>
Thu, 20 Feb 2014 15:23:32 +0000 (16:23 +0100)
commite6e17529e424ef17be50196ddc78c880fb0e584c
tree81ca34933935afab38495e788d32d75e77e6e295
parent0f68f7fab33fd6e09758d59bcd168266d957311f
Improve job status assert affected by race condition

In the sliver of time between choosing a waiting job to be executed and
trying to acquire locks for its execution, the status of the job can be
changed to canceling. An assert checking the job status neglected to
take this into account, and raised an error that managed to perpetually
lock the job in the canceling state. This patch resolves the issue by
making the assert accept the canceling state as well, and exiting if
the job was cancelled.

Signed-off-by: Hrvoje Ribicic <riba@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>
lib/jqueue.py