Bit rot inside container_info table
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
New
|
Undecided
|
Unassigned |
Bug Description
Based on a production issue with a Liberty swift version (i know it's EOL) I noticed that the container_stats view contained invalid data, as
sqlite> select * from container_stat;
AUTH_2943f48102
the put timestamp contained 147:133539&16340 which should have been 1478133529.16340.
I suspect the issue was caused by 2 bits flipped, but the machine is running ECC memory and did not endure filesystem (XFS) issues or crashes so it remains a mystery where the corruption is happening.
Is there a reason why the put_timestamp was defined as text inside the source of the view (container_info table) rather than floating point or datetime, so we would hopefully recognize these issues during put requests?
The corruption generates a 500 when querying the container service for the impacted database and I manually fixed the sqlite database to allow container listings to succeed now
This is related to https:/ /bugs.launchpad .net/swift/ +bug/1823785 where I originally reported it