From b22eed102df02e78d994ed2f6bb5d7ebd228d979 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Wed, 5 Feb 2020 12:47:01 -0500 Subject: [PATCH] rgw: flush datalog entries on shutdown pending datalog entries need to be issued before shutdown. a race with sshutdown is especially easy to reproduce with radosgw-admin, ie for 'bucket sync enable/disable' Signed-off-by: Casey Bodley --- src/rgw/rgw_bucket.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index 5f37624333330..630c0aadf60af 100644 --- a/src/rgw/rgw_bucket.cc +++ b/src/rgw/rgw_bucket.cc @@ -2398,7 +2398,7 @@ RGWDataChangesLog::~RGWDataChangesLog() { } void *RGWDataChangesLog::ChangesRenewThread::entry() { - do { + for (;;) { dout(2) << "RGWDataChangesLog::ChangesRenewThread: start" << dendl; int r = log->renew_entries(); if (r < 0) { @@ -2411,7 +2411,7 @@ void *RGWDataChangesLog::ChangesRenewThread::entry() { int interval = cct->_conf->rgw_data_log_window * 3 / 4; std::unique_lock locker{lock}; cond.wait_for(locker, std::chrono::seconds(interval)); - } while (!log->going_down()); + } return NULL; } -- 2.39.5