]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
client: catch buggy reference count drop for MetaRequest
authorVenky Shankar <vshankar@redhat.com>
Tue, 3 Jun 2025 10:04:44 +0000 (10:04 +0000)
committerVenky Shankar <vshankar@redhat.com>
Tue, 9 Sep 2025 04:37:49 +0000 (04:37 +0000)
commit325420838ca08e1088cbda12b36d40770c13f56d
tree6afb82201f903e2f4219a456aba575bb343d2220
parent7ab995b715968a4d03cf91aa7c6f44e25757a45e
client: catch buggy reference count drop for MetaRequest

With the prior commit that introduces a synthetic delay in write
operation so as to write a test reproducer which would interleave
asynchronous fsync and an operation that makes the MDS send a early
reply to the client (therefore, having the client track the early
replied response for an inode in Inode::unsafe_ops). Now, this is
enough to trick the client into the code path that causes a buggy
reference drop for the request (MetaRequest), but, hitting the
_exact_ crash backtrace requires the request to be a in various
[x]list's.

This last bit is tricky to synthetically massage in the test. So,
in order to catch the buggy reference drop, it would suffice to
assert on the reference count dropping to less than zero (0).

Signed-off-by: Venky Shankar <vshankar@redhat.com>
src/client/Client.cc