SLO etag doesn't match between container listings and object GET/HEAD
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Undecided
|
Tim Burke |
Bug Description
When you create, GET, or HEAD an SLO manifest, the Etag returned is, as documented, the MD5 of the concatenation of the etags of the segments. For an example, see [1].
However, the hash presented during container listings does *not* match. Neither does it correspond to anything that the client sent nor (due to the unpredictability of dictionary iteration) anything that the client could reasonably generate. Instead, it corresponds to the MD5 of the JSON manifest that the SLO middleware generated during PUT [2].
When SLO was originally written, it *had* to be this way; there was no way to specify a container listing override. With EC support, we grew X-Backend-
(Note that there's no good way to fix this for existing SLOs; we've got data on disk, the container updates have already been sent, etc.)
[1] http://
[2] http://
[3] https:/
[4] https:/
[5] https:/
Changed in swift: | |
status: | New → In Progress |
so the ETag in the listing is the ETag you see with ?multipart- manifest= get [1]
I like that it's consistent anyway...
1. https:/ /gist.github. com/clayg/ f062910ac72ad51 20c5ac49d28f73f a7