]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: unreg scrub when removing pg
authorSage Weil <sage@newdream.net>
Mon, 15 Nov 2010 19:25:49 +0000 (11:25 -0800)
committerSage Weil <sage@newdream.net>
Mon, 15 Nov 2010 19:25:49 +0000 (11:25 -0800)
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 <executable>` is needed to interpret this.

Reported-by: Colin McCabe <colinm@hq.newdream.net>
Signed-off-by: Sage Weil <sage@newdream.net>
src/osd/OSD.cc

index 249aa57197a2a96878729df318b5d9fdd729841e..5710eb7c0f6490e4fa457f802539443c52416957 100644 (file)
@@ -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());