Commit 9b88eeac authored by catch's avatar catch

Issue #1484216 by Berdir, beejeebus: Fixed Race condition in ...

Issue #1484216 by Berdir, beejeebus: Fixed Race condition in  _update_create_fetch_task() (PDO Exceptions).
parent c7c6b79d
......@@ -237,12 +237,22 @@ function _update_create_fetch_task($project) {
if (empty($fetch_tasks[$cid])) {
$queue = queue('update_fetch_tasks');
$queue->createItem($project);
db_insert('cache_update')
->fields(array(
'cid' => $cid,
'created' => REQUEST_TIME,
))
->execute();
// Due to race conditions, it is possible that another process already
// inserted a row into the {cache_update} table and the following query will
// throw an exception.
// @todo: Remove the need for the manual check by relying on a queue that
// enforces unique items.
try {
db_insert('cache_update')
->fields(array(
'cid' => $cid,
'created' => REQUEST_TIME,
))
->execute();
}
catch (Exception $e) {
// The exception can be ignored safely.
}
$fetch_tasks[$cid] = REQUEST_TIME;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment