test/libcephfs: validate asynchronous write and fsync executing concurrently
This synthetic reproducer does three things:
- setup a client mount with a configuration to delay write operations and
initiates a write operation via a thread.
- a thread that invokes asynchronous fsync
- a thread that invokes setxattr for the client to track early replies
Without the fix[0], the test reproduces the following crash:
```
/home/vshankar/ceph/src/client/Client.cc: In function 'void Client::put_request(MetaRequest*)' thread
7f7210ff9640 time 2025-06-03T09:34:45.634974+0000
/home/vshankar/ceph/src/client/Client.cc: 2290: FAILED ceph_assert(request->ref >= 1)
ceph version
20.3.0-673-gdd152807f7e (
dd152807f7e7f7a82df6cfc0159f5fc65f60ecd5) tentacle (dev - Debug)
1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x119) [0x7f72222ebb98]
2: (ceph::__ceph_assert_fail(ceph::assert_data const&)+0x17) [0x7f72222ebedc]
3: /home/vshankar/ceph/build/lib/libcephfs.so.2(+0x6a075) [0x7f7222e6a075]
4: /home/vshankar/ceph/build/lib/libcephfs.so.2(+0xb8289) [0x7f7222eb8289]
5: /home/vshankar/ceph/build/lib/libcephfs.so.2(+0xee951) [0x7f7222eee951]
6: /home/vshankar/ceph/build/lib/libcephfs.so.2(+0xf167c) [0x7f7222ef167c]
7: (Context::complete(int)+0x9) [0x7f7222e5949d]
8: /home/vshankar/ceph/build/lib/libcephfs.so.2(+0x16a853) [0x7f7222f6a853]
9: /home/vshankar/ceph/build/lib/libcephfs.so.2(+0xa7cc5) [0x7f7222ea7cc5]
10: /home/vshankar/ceph/build/lib/libcephfs.so.2(+0xf128d) [0x7f7222ef128d]
11: /home/vshankar/ceph/build/lib/libcephfs.so.2(+0x16e09d) [0x7f7222f6e09d]
12: (Context::complete(int)+0x9) [0x7f7222e5949d]
13: /home/vshankar/ceph/build/lib/libcephfs.so.2(+0x6d108) [0x7f7222e6d108]
14: (Context::complete(int)+0x9) [0x7f7222e5949d]
15: (Finisher::finisher_thread_entry()+0x665) [0x7f722226fdc1]
16: (Finisher::FinisherThread::entry()+0xd) [0x7f7222270ddf]
17: (Thread::entry_wrapper()+0x2f) [0x7f72222b88f5]
18: (Thread::_entry_func(void*)+0x9) [0x7f72222b8907]
19: /lib64/libc.so.6(+0x89e92) [0x7f7221089e92]
20: /lib64/libc.so.6(+0x10ef20) [0x7f722110ef20]
[1]
2162689 IOT instruction (core dumped) ./bin/ceph_test_libcephfs --gtest_filter=LibCephFS.ConcurrentWriteAndFsync
```
[0]: https://github.com/ceph/ceph/pull/63619
Fixes: http://tracker.ceph.com/issues/71515
Signed-off-by: Venky Shankar <vshankar@redhat.com>