From: Casey Bodley Date: Fri, 9 Feb 2024 18:38:49 +0000 (-0500) Subject: rgw/datalog: RGWDataChangesLog::add_entry() uses null_yield X-Git-Tag: v18.2.4~205^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bec2b22a6897058652a6f0c41ed3c0d67dd2296e;p=ceph.git rgw/datalog: RGWDataChangesLog::add_entry() uses null_yield work around a deadlock under RGWDataChangesLog::add_entry() with multi-object delete by making the push() call synchronous this is a partial revert of d38a69b6e18cb798528d64a2c6c3e439212fe6d2 Fixes: https://tracker.ceph.com/issues/63373 Signed-off-by: Casey Bodley (cherry picked from commit 692c2e4d555dd0afe8db6a40634caf446bbc13a7) --- diff --git a/src/rgw/driver/rados/rgw_datalog.cc b/src/rgw/driver/rados/rgw_datalog.cc index 7ca37abf684..14994a61535 100644 --- a/src/rgw/driver/rados/rgw_datalog.cc +++ b/src/rgw/driver/rados/rgw_datalog.cc @@ -720,7 +720,8 @@ int RGWDataChangesLog::add_entry(const DoutPrefixProvider *dpp, ldpp_dout(dpp, 20) << "RGWDataChangesLog::add_entry() sending update with now=" << now << " cur_expiration=" << expiration << dendl; auto be = bes->head(); - ret = be->push(dpp, index, now, change.key, std::move(bl), y); + // TODO: pass y once we fix the deadlock from https://tracker.ceph.com/issues/63373 + ret = be->push(dpp, index, now, change.key, std::move(bl), null_yield); now = real_clock::now();