]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/Filestore: fix wbthrottle assert. 14213/head
authorXiaoxi Chen <xiaoxchen@ebay.com>
Wed, 29 Mar 2017 03:26:43 +0000 (20:26 -0700)
committerXiaoxi Chen <xiaoxchen@ebay.com>
Wed, 26 Apr 2017 06:50:40 +0000 (23:50 -0700)
When filestore_wbthrottle_*_*_start_flusher = 0, ceph-osd
will assert on startup due to pending_wbs.empty() == True.

It seems valid for user to set start_flusher to 0 as intend to
flush aggressively all the time, to minimize the impact of
syncfs().

Signed-off-by: Xiaoxi Chen <xiaoxchen@ebay.com>
src/os/filestore/WBThrottle.cc

index 71884445c76a12cee0679e2eaeb607fba94631fe..9287715acd4f080db0360874916e6226599a40cd 100644 (file)
@@ -135,7 +135,7 @@ bool WBThrottle::get_next_should_flush(
 {
   assert(lock.is_locked());
   assert(next);
-  while (!stopping && !beyond_limit())
+  while (!stopping && (!beyond_limit() || pending_wbs.empty()))
          cond.Wait(lock);
   if (stopping)
     return false;