]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/d3n: fix valgrind invalid read during exit 63438/head
authorMark Kogan <mkogan@ibm.com>
Mon, 19 May 2025 14:52:42 +0000 (14:52 +0000)
committerMark Kogan <mkogan@ibm.com>
Thu, 22 May 2025 17:14:11 +0000 (17:14 +0000)
The valgrind indication is a false positive in this case, is seems there is a race of memory read and free of the libaio and aio kernel threads which had not timer-d out yet during exit()

reducing the aio_idle_time timeout to mitigate

```
man aio_init
...
aio_idle_time
This field specifies the amount of time in seconds that a worker thread
should wait for further requests before terminating, after having
completed a previous request.   The
default value is 1.
...
```

Fixes: https://tracker.ceph.com/issues/64835
Signed-off-by: Mark Kogan <mkogan@ibm.com>
(cherry picked from commit 31fae3a9013f05c94ad4233dd51240e2f2b3c040)

src/rgw/driver/rados/rgw_d3n_datacache.cc

index c81954fce1c74a6f02d2eee8077684b6d500f762..6d4f4cce2223d62933d457e2d17732394c6c56cc 100644 (file)
@@ -104,7 +104,7 @@ void D3nDataCache::init(CephContext *_cct) {
   struct aioinit ainit{0};
   ainit.aio_threads = cct->_conf.get_val<int64_t>("rgw_d3n_libaio_aio_threads");
   ainit.aio_num = cct->_conf.get_val<int64_t>("rgw_d3n_libaio_aio_num");
-  ainit.aio_idle_time = 5;
+  ainit.aio_idle_time = 2;
   aio_init(&ainit);
 #endif
 }