From: Sage Weil Date: Tue, 24 Apr 2018 18:02:14 +0000 (-0500) Subject: osd: publish osdmap to OSDService before starting wq threads X-Git-Tag: v13.1.0~105^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F21623%2Fhead;p=ceph.git osd: publish osdmap to OSDService before starting wq threads 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 --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 9b8891e96ba3..734d1db7b47a 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -2606,6 +2606,11 @@ int OSD::init() monc->set_log_client(&log_client); update_log_config(); + service.init(); + service.publish_map(osdmap); + service.publish_superblock(superblock); + service.max_oldest_map = superblock.oldest_map; + osd_op_tp.start(); command_tp.start(); @@ -2619,11 +2624,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();