From 556ba7397c352f5a6cb7fe03087c6e2f51dbce32 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 15 Nov 2010 11:25:49 -0800 Subject: [PATCH] osd: unreg scrub when removing pg This fixes this crash: osd/OSD.cc: In function 'PG* OSD::_lookup_lock_pg(pg_t)': osd/OSD.cc:956: FAILED assert(pg_map.count(pgid)) ceph version 0.24~rc (7201497f2feef6a2bbd0baf89e3a14b8a880e79f) 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x34) [0x81ee4e] 2: (OSD::_lookup_lock_pg(pg_t)+0x6f) [0x6d3d57] 3: (OSD::sched_scrub()+0x2e9) [0x6e4445] 4: (OSD::tick()+0x204) [0x6f168e] 5: (OSD::C_Tick::finish(int)+0x1c) [0x7613bc] 6: (SafeTimer::timer_thread()+0x189) [0x81bcf5] 7: (SafeTimerThread::entry()+0x19) [0x81dd73] 8: (Thread::_entry_func(void*)+0x20) [0x66496a] 9: (()+0x68ba) [0x7fb807d118ba] 10: (clone()+0x6d) [0x7fb806a7002d] NOTE: a copy of the executable, or `objdump -rdS ` is needed to interpret this. Reported-by: Colin McCabe Signed-off-by: Sage Weil --- src/osd/OSD.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 249aa57197a2a..5710eb7c0f649 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -4299,6 +4299,7 @@ void OSD::_remove_pg(PG *pg) // remove from map pg_map.erase(pgid); + unreg_last_pg_scrub(pg->info.pgid, pg->info.history.last_scrub_stamp); _put_pool(pgid.pool()); -- 2.39.5