From: Sage Weil Date: Sat, 16 Aug 2014 19:42:33 +0000 (-0700) Subject: os/FileStore: fix mount/remount force_sync race X-Git-Tag: v0.80.6~34 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2f11631f3144f2cc0e04d718e40e716540c8af19;p=ceph.git os/FileStore: fix mount/remount force_sync race Consider: - mount - sync_entry is doing some work - umount - set force_sync = true - set done = true - sync_entry exits (due to done) - ..but does not set force_sync = false - mount - journal replay starts - sync_entry sees force_sync and does a commit while op_seq == 0 ...crash... Fixes: #9144 Backport: firefly, dumpling Signed-off-by: Sage Weil (cherry picked from commit dd11042f969b94f7a461d02e1475794031c79f61) Conflicts: src/os/FileStore.cc --- diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index 38b7f03cf024..1a3f95788763 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -1558,6 +1558,8 @@ int FileStore::umount() backend = generic_backend; } + force_sync = false; + object_map.reset(); {