Send commit (create .durable) when quorum 4xx statuses in the responses
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
High
|
Kota Tsuyuzaki |
Bug Description
In EC PUT request case, proxy-server may send commit and it will make .durable file even though the request failed due to a lack of quorum number.
For example:
- Considering the case that almost of object-servers fail by 422 Unpronounceable Entity
- Using ec scheme 4 + 2
- 5 (quorum size) object-server failed with 422, 1 object-servers succeeded as 201 created
How it works:
- Client creates a PUT request
- Proxy will open connections to backend object-servers
- Proxy will send whole encoded chunks to object-servers
- Proxy will send content-md5 as footers.
- Proxy will get responses [422, 422, 422, 422, 422, 201] (currently this list is regarded as "we have quorum response")
- And then proxy will send commits to object-servers (the only object-server with 201 will create .durable file)
- Proxy will return 503 because the commits results in no response statuses from object-servers except the 201 node.
Tested with Swift 2.4.0
Changed in swift: | |
importance: | Undecided → Medium |
Changed in swift: | |
importance: | Medium → High |
Changed in swift: | |
milestone: | none → 2.5.0 |
status: | Fix Committed → Fix Released |
Fix proposed to branch: master /review. openstack. org/220059
Review: https:/