Bug #51619
Updated by Kefu Chai over 2 years ago
in
void BlueStore::_fsck_check_pool_statfs(
the following lines
<pre><code class="cpp">
if (repairer) {
repairer->remove_key(db, PREFIX_SHARED_BLOB, key);
}
</code></pre>
should be
<pre><code class="cpp">
if (repairer) {
repairer->remove_key(db, PREFIX_STAT, key);
}
</code></pre>
The bug triggers when stray Pool statfs records are found and exposed to removal, e.g.
2021-07-08T12:12:12.128+0200 7efde5532100 20 bluestore(/var/lib/ceph/osd/ceph-42) fsck inf: found empty stray Pool StatFS record for pool id 0x2c90
2021-07-08T12:12:12.128+0200 7efde5532100 20 bluestore(/var/lib/ceph/osd/ceph-42) fsck inf: found empty stray Pool StatFS record for pool id 0x2caf
2021-07-08T12:12:12.128+0200 7efde5532100 20 bluestore(/var/lib/ceph/osd/ceph-42) fsck inf: found empty stray Pool StatFS record for pool id 0x2cce
2021-07-08T12:12:12.128+0200 7efde5532100 20 bluestore(/var/lib/ceph/osd/ceph-42) fsck inf: found empty stray Pool StatFS record for pool id 0x2ced
Then Shared blobs with matching ids would be removed instead.
void BlueStore::_fsck_check_pool_statfs(
the following lines
<pre><code class="cpp">
if (repairer) {
repairer->remove_key(db, PREFIX_SHARED_BLOB, key);
}
</code></pre>
should be
<pre><code class="cpp">
if (repairer) {
repairer->remove_key(db, PREFIX_STAT, key);
}
</code></pre>
The bug triggers when stray Pool statfs records are found and exposed to removal, e.g.
2021-07-08T12:12:12.128+0200 7efde5532100 20 bluestore(/var/lib/ceph/osd/ceph-42) fsck inf: found empty stray Pool StatFS record for pool id 0x2c90
2021-07-08T12:12:12.128+0200 7efde5532100 20 bluestore(/var/lib/ceph/osd/ceph-42) fsck inf: found empty stray Pool StatFS record for pool id 0x2caf
2021-07-08T12:12:12.128+0200 7efde5532100 20 bluestore(/var/lib/ceph/osd/ceph-42) fsck inf: found empty stray Pool StatFS record for pool id 0x2cce
2021-07-08T12:12:12.128+0200 7efde5532100 20 bluestore(/var/lib/ceph/osd/ceph-42) fsck inf: found empty stray Pool StatFS record for pool id 0x2ced
Then Shared blobs with matching ids would be removed instead.