node timeout on overwrite can easily cause mis-matched etag fragment to 503
Bug #1457691 reported by
Kota Tsuyuzaki
This bug affects 3 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
High
|
paul luse |
Bug Description
On EC GET object, insufficient fragments error occurred on decoding on PyECLib.
For example, k=2, m=1 and then, an object was overwritten sometimes (e.g. post_as_copy):
Timesampe1:
Assuming the fragments located as follows (integer means fragment index):
primary handoff
[0][1][2] [0]
(unfortunately some PUT failed and located index 0 in handoff)
Timestamp2:
GET object requested but node 1 and 2 failed by something like connection timeout.
Proxy will retrieve 2 enough ndata stream fron object-server but it will be actually both of them are index 0.
That will go to insufficient fragments to decode :(
CVE References
tags: | added: ec |
Changed in swift: | |
assignee: | nobody → Bill Huber (wbhuber) |
Changed in swift: | |
importance: | Undecided → High |
Changed in swift: | |
assignee: | Bill Huber (wbhuber) → paul luse (paul-e-luse) |
summary: |
- EC GET w/not work with just one PUT during handoff + node timeout on overwrite can easily cause mis-matched etag fragment to + 503 |
Changed in swift: | |
importance: | High → Critical |
Changed in swift: | |
milestone: | none → 2.5.0 |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Investigating this bug.