crimson: clear obcs whether referenced or not upon replica write
It's always possible for there to be an in-progress replica-read
when the replica processes a repop. It's rare in our tests because
the read and write submitted by the test client would need to
overlap in time. This makes the results non-deterministic and
thus a somewhat less sensitive test. Note, the space of valid
results is well defined -- it would have to be state before or
after any of the outstanding writes. Any other result or a torn
read would be wrong. It's probably worth updating RadosModel
to add such a pattern, but we can do that later.
This branch makes this race much more likely and even observable
with the existing RadosModel implementation as it extends the
obc lifetime past the point of returning the result to the client
in order to ensure that it outlives the handle.
Fixes: https://tracker.ceph.com/issues/69013 Signed-off-by: Samuel Just <sjust@redhat.com>