Reconstructor does not send an ETag with a reconstructed fragment

Bug #1632839 reported by Alistair Coles
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Object Storage (swift)
Confirmed
Low
Unassigned

Bug Description

The reconstructor does not send an ETag with a reconstructed fragment when performing a sync type ssync job. It cannot send it as a header because it will not know the md5 sum until the fragment has been rebuilt. Ssync does not support footers. So there is no easy way to overcome this deficiency. It is however, a deficiency since it risks corrupted fragments being written to disk on the receiving side with the receiver annotating the diskfile with the md5 of the corrupt data.

Tags: ec
Revision history for this message
clayg (clay-gerrard) wrote :

I think the REPCONN protocol is similarly lacking support for metadata after data

clayg (clay-gerrard)
Changed in swift:
importance: Undecided → Low
status: New → Confirmed
Revision history for this message
clayg (clay-gerrard) wrote :

Discussed at the BCN summit [1]

This is going to require a protocol update to support footers in the replication protocol. Ideally there will be some sort of sane complement of the protocol used by the proxy server (which today is MIME, which requires chunked-transfer, which breaks zero-copy)

[1] https://etherpad.openstack.org/p/BCN-swift-working-session-1

Revision history for this message
clayg (clay-gerrard) wrote :

If we merge STAGE+UPDATE+COMMIT support to object server it might be w/i a stone's throw to make SSYNC use STAGE+COMMIT instead of straight PUT for reconstructed frags. Continuing to use straight PUT when reverting fragments (that already have an ETAG) is optional.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.