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: v19.1.0~270^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F55654%2Fhead;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 9274dc2ae9be1..4c9503071ef17 100644 --- a/src/rgw/driver/rados/rgw_datalog.cc +++ b/src/rgw/driver/rados/rgw_datalog.cc @@ -737,7 +737,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();