For the record, the cause of the original description of this bug is:
- versioned_writes gets misplaced in pipeline to left of SLO
- during PUT handling, versioned writes creates a COPY req *with new environ* for the copy of the version to the versions container
- SLO inserts its copy_hook into the new req environ :(
- when obj controller calls back to the copy_hook, SLO performs segment assembly
- so the manifest version becomes the whole large object
When versioned_writes is correctly placed to the right of SLO in the pipeline:
- during handling a PUT request, SLO inserts its copy hook in the PUT req environ
- versioned writes creates a COPY req for the version copy *with a new req environ* and the slo copy_hook is NOT copied to the copy req environ
- during obj controller copy handling, no copy hook is found so manifest object gets copied without any intervention form SLO :)
For the record, the cause of the original description of this bug is:
- versioned_writes gets misplaced in pipeline to left of SLO
- during PUT handling, versioned writes creates a COPY req *with new environ* for the copy of the version to the versions container
- SLO inserts its copy_hook into the new req environ :(
- when obj controller calls back to the copy_hook, SLO performs segment assembly
- so the manifest version becomes the whole large object
When versioned_writes is correctly placed to the right of SLO in the pipeline:
- during handling a PUT request, SLO inserts its copy hook in the PUT req environ
- versioned writes creates a COPY req for the version copy *with a new req environ* and the slo copy_hook is NOT copied to the copy req environ
- during obj controller copy handling, no copy hook is found so manifest object gets copied without any intervention form SLO :)