race condition quarantines valid objects
Bug #1451520 reported by
Mike Barton
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
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_
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.
description: | updated |
Changed in swift: | |
milestone: | none → 2.4.0 |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Reviewed: https:/ /review. openstack. org/187116 /git.openstack. org/cgit/ openstack/ swift/commit/ ?id=1bef06eec8f 5f780914ac701d6 3f9c498b29119b
Committed: https:/
Submitter: Jenkins
Branch: master
commit 1bef06eec8f5f78 0914ac701d63f9c 498b29119b
Author: Michael Barton <email address hidden>
Date: Sun May 31 23:10:15 2015 +0000
Don't quarantine on read_metadata ENOENT
An operation that removes an existing .ts or .meta out from under another
concurrent operation at the right point can cause the whole object to be
needlessly quarantined.
Closes-Bug: #1451520
Change-Id: I37d660199e5441 1d0610889f9ee23 0b13747244b