]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
osd: shutdown our reserver_finisher earlier in the process
authorGreg Farnum <gfarnum@redhat.com>
Fri, 26 May 2017 05:14:38 +0000 (22:14 -0700)
committerGreg Farnum <gfarnum@redhat.com>
Tue, 18 Jul 2017 20:24:35 +0000 (13:24 -0700)
commit4bf34200896ce120bba2e2d974c4f3dadb342821
tree853baf5ed546a963daff8151135ea2d02dc2d4dd
parent2d5cafdf6461c213aa2642210a3c4efabce61efd
osd: shutdown our reserver_finisher earlier in the process

This finisher thread has a lot of callbacks which can hold PGRefs. Make
sure we drain them out before checking that all the PGs have finished
and have no outstanding references.

Moving this should be safe; we've already stopped the op thread et al
and the only things still running are the OSDService's objecter_finisher,
recovery_request_timer, and snap_sleep_timer (which has definitely been emptied
by the time we get here as it's synchronously cleared out on PG shutdown).

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
(cherry picked from commit 66ea9c1f66ae31035e62bd4335b08948b1e8e5e2)
src/osd/OSD.cc
src/osd/OSD.h