]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd: Fix issue where it is possible for stats to be recovered incorrectly during...
authorJon Bailey <jonathan.bailey1@ibm.com>
Tue, 27 Jan 2026 14:29:05 +0000 (14:29 +0000)
committerJon Bailey <jonathan.bailey1@ibm.com>
Fri, 30 Jan 2026 12:54:03 +0000 (12:54 +0000)
commit30c5de8ae202b227c474d2684d09a0d9db43aa7f
tree7f7b2fe1b76434ee122b4a11852d10f1c4797116
parentfdf9e7a34410f0f7a633e20ffc886cf18333ba25
osd: Fix issue where it is possible for stats to be recovered incorrectly during merge operations.

To hit the problem, after you take a snapshot, you:
* Perform a write
* Perform a partial write that only involves the primary
* Perform a partial write that only involves a non-primary
* Primary goes down
* Primary comes up
* Primary goes through peering and chooses a non-primary shard as its peering partner

The result of these operations is the stats reporting a size difference equal to the partial write that only involves the primary, as the non-primary is not aware of the clone operation by design and so that is missing update is copied to the osd. This commit prevents it by invalidating the stats in the case where this happens. There will be a future commit to further narrow the set of cases where stats invalidations can happen.

Signed-off-by: Jon Bailey <jonathan.bailey1@ibm.com>
(cherry picked from commit ebc6f270681a5f602b4979ef8a96bee1ca0d1e73)
src/osd/PeeringState.cc