summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Dillaman <dillaman@redhat.com>2018-05-07 19:23:43 +0200
committerKefu Chai <kchai@redhat.com>2018-05-09 14:23:38 +0200
commit855faac1698e5dea03ab5e1b6dd67058e29e4a77 (patch)
treefacf7a4659f74fce8ad05d372c1a00d8484d911a
parentosdc: invoke notify finish context on linger commit failure (diff)
downloadceph-855faac1698e5dea03ab5e1b6dd67058e29e4a77.tar.xz
ceph-855faac1698e5dea03ab5e1b6dd67058e29e4a77.zip
librados: fix potential race condition if notify immediately fails
Fixes: http://tracker.ceph.com/issues/23966 Signed-off-by: Jason Dillaman <dillaman@redhat.com> (cherry picked from commit cc06fbab08ef5b7f1b18f2af333c019ad86de03d)
-rw-r--r--src/librados/IoCtxImpl.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/librados/IoCtxImpl.cc b/src/librados/IoCtxImpl.cc
index 668eb2f7bd1..cc8d7a27ead 100644
--- a/src/librados/IoCtxImpl.cc
+++ b/src/librados/IoCtxImpl.cc
@@ -1860,6 +1860,7 @@ int librados::IoCtxImpl::notify(const object_t& oid, bufferlist& bl,
} else {
ldout(client->cct, 10) << __func__ << " failed to initiate notify, r = "
<< r << dendl;
+ notify_finish_cond.wait();
}
objecter->linger_cancel(linger_op);