]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/datalog: RGWDataChangesLog::add_entry() uses null_yield 55522/head
authorCasey Bodley <cbodley@redhat.com>
Fri, 9 Feb 2024 18:38:49 +0000 (13:38 -0500)
committerCasey Bodley <cbodley@redhat.com>
Fri, 9 Feb 2024 18:38:51 +0000 (13:38 -0500)
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 <cbodley@redhat.com>
src/rgw/driver/rados/rgw_datalog.cc

index 9274dc2ae9be129a366b0e07a1ab385624077f57..4c9503071ef173329d188610ebf9241b949088ac 100644 (file)
@@ -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();