Multiple part power increases leads to misplaced data
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
I ran through part power increase once, and everything was great. I put a some data in my vsaio, and every step along the way I could use swift-account-audit to verify everything was still accessible: http://
My part power was still ridiculously low, so I went to increase it again. Starts out well enough:
=======
vagrant@
The next partition power is now 6.
The change will take effect after the next write_ring.
Ensure your proxy-servers, object-replicators and
reconstructors are using the changed rings and relink
(using swift-object-
before the partition power increase
vagrant@
vagrant@
Auditing account "AUTH_test"
Auditing container "c"
Accounts checked: 1
Containers checked: 1
Objects checked: 83
=======
The relink was a little funky (but didn't actually error), and the audit kept passing, so I kept going:
=======
vagrant@
Relinking files for policy default under /srv/node1
Relinked 0 diskfiles (0 errors)
Relinking files for policy default under /srv/node2
Relinked 0 diskfiles (0 errors)
Relinking files for policy default under /srv/node3
Relinked 0 diskfiles (0 errors)
Relinking files for policy default under /srv/node4
Relinked 0 diskfiles (0 errors)
vagrant@
Auditing account "AUTH_test"
Auditing container "c"
Accounts checked: 1
Containers checked: 1
Objects checked: 83
vagrant@
The partition power is now 6.
The change will take effect after the next write_ring.
vagrant@
=======
But at this point it all goes to pot:
=======
vagrant@
Auditing account "AUTH_test"
Auditing container "c"
Bad status HEADing object "/AUTH_test/c/..." on 127.0.0.3/sdb7
Bad status HEADing object "/AUTH_test/c/..." on 127.0.0.1/sdb5
...
Failed fo fetch object /AUTH_test/c/... at all!
Accounts checked: 1
Containers checked: 1
Objects checked: 83
Missing Replicas: 492
=======
All those "Relinked 0 diskfiles (0 errors)" lines? We didn't relink *anything*! The trouble is the progress state we introduced in https:/
This issue was fixed in the openstack/swift 2.27.0 release.