Commit 732a937
committed
rgw: RGWSI_Notify drains the finisher before deleting RGWWatchers
the `C_ReinitWatch` context stores a pointer to `RGWWatcher *watcher`
`RGWSI_Notify` schedules `C_ReinitWatch` callbacks to run on this
finisher thread, which can race with the destruction of those
`RGWWatchers` in `RGWSI_Notify::finalize_watch()`
to avoid this race, delay the `RGWWatcher` deletions until after we've
drained/stopped the Finisher thread in `RGWSI_Notify::shutdown()`
Fixes: https://tracker.ceph.com/issues/73361
Signed-off-by: Casey Bodley <[email protected]>1 parent 4aa6ed8 commit 732a937
1 file changed
+4
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
237 | 237 | | |
238 | 238 | | |
239 | 239 | | |
240 | | - | |
241 | | - | |
242 | 240 | | |
243 | 241 | | |
244 | 242 | | |
| |||
303 | 301 | | |
304 | 302 | | |
305 | 303 | | |
| 304 | + | |
| 305 | + | |
306 | 306 | | |
307 | 307 | | |
308 | 308 | | |
| 309 | + | |
| 310 | + | |
309 | 311 | | |
310 | 312 | | |
311 | 313 | | |
| |||
0 commit comments