2015-05-31 23:20:40 |
Mike Barton |
description |
There's a race condition that isn't handled well in diskfile.py - when a file gets removed between the object hash listdir and reading the metadata, _failsafe_read_metadata will quarantine the whole dir even though nothing particularly wrong happened. Such as:
DELETE request does a listdir, sees a .data file.
PUT operation completes, removing the old .data and adding a new .data.
DELETE request attempts to read metadata from old .data, gets an exception, and quarantines the shiny new .data file. |
There's a race condition that isn't handled well in diskfile.py - in some cases when a file gets removed between the object hash listdir and reading the metadata, _failsafe_read_metadata will quarantine the whole dir even though nothing particularly wrong happened. Such as:
DELETE request does a listdir, sees an existing .ts file.
A separate PUT operation completes, removing the .ts and adding a new .data.
DELETE request attempts to read metadata from old .ts, gets an exception, and quarantines the shiny new .data file. |
|