Object copied by container-sync may have older timestamp than source
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
High
|
Alistair Coles |
Bug Description
When container sync PUTs an object to a destination container
it uses the timestamp from the container row rather than the
actual timestamp of the object being copied. The actual timestamp
of the object can be newer, so the sync'd object may end up with
the right content but at the wrong, older, timestamp.
Consider an object that has been PUT at t1, has a row in source container db at t1,
and is then PUT again at t2 while container servers are down, so the container
updates are missing. When container-sync daemon finds the container row and
sync's the object, it GETs the newest object which should be at t2, but PUTs it using
the container db row timestamp, which is t1.
The weird thing is that container-sync code makes the timestamp change very explicitly [1],
so I am left wondering if there is a reason for this that I have not yet understood?
I'll post a patch with a probe test that reproduces the scenario.
[1] https:/
CVE References
Changed in swift: | |
assignee: | nobody → Alistair Coles (alistair-coles) |
description: | updated |
Changed in swift: | |
importance: | Undecided → High |
Fix proposed to branch: master /review. openstack. org/275147
Review: https:/