From: Brad Hubbard Date: Thu, 2 Aug 2018 00:33:42 +0000 (+1000) Subject: mimic: mgr/MgrClient: Protect daemon_health_metrics X-Git-Tag: v13.2.2~112^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=af4ea0ab780cada9d81c43534675b67664cbd8d1;p=ceph.git mimic: mgr/MgrClient: Protect daemon_health_metrics Without holding the lock update_daemon_health() can race with send_report() corrupting the daemon_health_metrics vector. Fixes: http://tracker.ceph.com/issues/23352 Signed-off-by: Kjetil Joergensen Signed-off-by: Brad Hubbard (cherry picked from commit 4996506a6b4ab309110039ea29a075f14d09a379) --- diff --git a/src/mgr/MgrClient.cc b/src/mgr/MgrClient.cc index 804c9d639e7..04b774796c9 100644 --- a/src/mgr/MgrClient.cc +++ b/src/mgr/MgrClient.cc @@ -512,6 +512,7 @@ int MgrClient::service_daemon_update_status( void MgrClient::update_daemon_health(std::vector&& metrics) { + Mutex::Locker l(lock); daemon_health_metrics = std::move(metrics); }