invalid account stats due to container update from handoff
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
In Progress
|
Undecided
|
Unassigned |
Bug Description
We have seen account stats become distorted: in worst case an account with only one container drops to reporting zero bytes and zero object count despite the container having objects.
The hypothesis is that:
1. a container PUT lands on a handoff at t1, so the handoff db has zero object count.
2. subsequent PUTs land on primaries, say at t2
3. primaries update account with valid obj count and bytes
4. handoff update account with zero obj count and bytes
5. no more objects are PUT so primaries make no more updates to account
6. container replication leaves primary put timestamp unchanged because handoff put time is older than primary -> no primary updates to account
7. account remains stuck with zero obj count and bytes used until an object is put or deleted at which point a primary will update the account stats.
The same could result in non-zero but under-reported account stats if there is more than one container in the account and a subset of containers have handoffs reporting zero objects.
Changed in swift: | |
status: | New → In Progress |
reproduced by probe test here https:/ /review. opendev. org/c/openstack /swift/ +/811833