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: v12.2.6~165^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=82b3b5f3f10cc86cc76d47269893db5e29b3a778;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 (cherry picked from commit ef3e5b1069c81f4e5b64e6119b467aeb7193e0b7) Conflicts: src/osd/OSD.cc: Resolved in OSD::init --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 2579e7fdc4b0..54ddcb81b319 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -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();