POST to DLO squashes data without fast-POST
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Undecided
|
Janie Richling |
Bug Description
If object_post_as_copy is true (the default), then a POST to a DLO ends up squashing the object into the manifest object. This is normal for COPY operations, but if the user ensures that the proper manifest header is set, it still does it, likely resulting in an error.
With a maximum object size of 400000000:
$ curl -H "X-Auth-Token: AUTH_tk9d66e358
HTTP/1.1 200 OK
Content-Length: 524288008
Etag: "10b92c89c18a80
Accept-Ranges: bytes
Last-Modified: Sat, 22 Aug 2015 22:50:10 GMT
X-Object-Manifest: c2/o
X-Timestamp: 1440283809.36887
Content-Type: application/
X-Trans-Id: tx5180cd78ffe44
Date: Sat, 22 Aug 2015 22:53:46 GMT
$ curl -i -H "X-Auth-Token: AUTH_tk9d66e358
HTTP/1.1 413 Request Entity Too Large
Content-Length: 108
Content-Type: text/html; charset=UTF-8
X-Trans-Id: txff4972ba42584
Date: Sat, 22 Aug 2015 22:54:27 GMT
<html><h1>Request Entity Too Large</h1><p>The body of your request was too large for this server.</p></html>
Logical objects smaller than the max size "work", but the data is duplicated in the system.
The POST-as-copy code needs to respect the manifest header and *not* copy the data in that case.
Changed in swift: | |
status: | New → Confirmed |
Changed in swift: | |
assignee: | nobody → Janie Richling (jrichli) |
summary: |
- POST to DLO squashes data without fast-POST + No tests exist for POST to DLO manifest file |
summary: |
- No tests exist for POST to DLO manifest file + POST to DLO squashes data without fast-POST |
Changed in swift: | |
status: | In Progress → Fix Released |
from dfg in channel: if you send a COPY with --multipart- manifest= get on it then it just copies the manifest