Comment 22 for bug 1487791

Revision history for this message
Janie Richling (jrichli) wrote :

I verified that it was copy as middleware that fixed the original issue. (The segment data was appended to the manifest contents)
FIXED : commit 46d61a4dcd9a5d9157625c06d6fe7d916e80c3d2 Refactor server side copy as middleware
HAS ISSUE: commit 72372c1464d1aae4a9b5de5ef6a3689fddf168cc Merge "decouple versioned writes from COPY"

What is interesting about the old bug is that if the manifest header was supplied on each POST (post-as-copy), then it is clear that the segment data was getting *appended* to the manifest contents (not replacing its contents), so the manifest object would grow by the size of the large object with each post. The appended object data was revealed with every subsequent large object GET after the POST (since the manifest contents are always included first before the segment data).

If the manifest header was NOT supplied on this POST, then the manifest was no longer a manifest, and the contents that had been appended remain the contents (it doesn't grow with subsequent POSTs only because the manifest-ness was lost).

There are still no tests that POST to a DLO manifest, but that is being worked under https://review.openstack.org/#/c/347545/ with no associated bug (Alistair mentioned we could close this as fixed under copy as mw).

Bug https://bugs.launchpad.net/swift/+bug/1612991 was created for the "Post-as-copy does not allow a DLO manifest to be updated".