]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: publish osdmap to OSDService before starting wq threads 21737/head
authorSage Weil <sage@redhat.com>
Tue, 24 Apr 2018 18:02:14 +0000 (13:02 -0500)
committerPrashant D <pdhange@redhat.com>
Mon, 30 Apr 2018 10:07:55 +0000 (06:07 -0400)
The worker threads may request the map from the service (notably,
advance_pg() does this).

Fixes: http://tracker.ceph.com/issues/21977
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit ef3e5b1069c81f4e5b64e6119b467aeb7193e0b7)

Conflicts:
src/osd/OSD.cc: Resolved in OSD::init

src/osd/OSD.cc

index 2579e7fdc4b04c3a27b6917c027cbd89e5a608db..54ddcb81b3191ea89e6015dc1596a78df5115c2a 100644 (file)
@@ -2660,6 +2660,12 @@ int OSD::init()
   update_log_config();
 
   peering_tp.start();
+  
+  service.init();
+  service.publish_map(osdmap);
+  service.publish_superblock(superblock);
+  service.max_oldest_map = superblock.oldest_map;
+
   osd_op_tp.start();
   disk_tp.start();
   command_tp.start();
@@ -2676,11 +2682,6 @@ int OSD::init()
     tick_timer_without_osd_lock.add_event_after(cct->_conf->osd_heartbeat_interval, new C_Tick_WithoutOSDLock(this));
   }
 
-  service.init();
-  service.publish_map(osdmap);
-  service.publish_superblock(superblock);
-  service.max_oldest_map = superblock.oldest_map;
-
   osd_lock.Unlock();
 
   r = monc->authenticate();