From 849f282a90f9b736a2b320d27ebb0ad499b8714f Mon Sep 17 00:00:00 2001 From: Willem Jan Withagen Date: Thu, 29 Aug 2019 15:54:30 +0200 Subject: [PATCH] tools/rbd-ggate: close log before running postfork Otherwise the assert in Log:open() will trigger since all data is kept during the fork and also the `is_started` flag Fixes: https://tracker.ceph.com/issues/41592 Signed-off-by: Willem Jan Withagen (cherry picked from commit 21bdd4c6ecd24b2a7dbf8691705f228ac11481ad) Conflicts: src/tools/rbd_ggate/main.cc : Resolved in do_map --- src/tools/rbd_ggate/main.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/tools/rbd_ggate/main.cc b/src/tools/rbd_ggate/main.cc index 44a075237f1be..addffd7db700d 100644 --- a/src/tools/rbd_ggate/main.cc +++ b/src/tools/rbd_ggate/main.cc @@ -102,14 +102,13 @@ static int do_map(int argc, const char *argv[]) std::cerr << err << std::endl; return r; } - if (forker.is_parent()) { - global_init_postfork_start(g_ceph_context); if (forker.parent_wait(err) != 0) { return -ENXIO; } return 0; } + global_init_postfork_start(g_ceph_context); } common_init_finish(g_ceph_context); @@ -201,9 +200,8 @@ static int do_map(int argc, const char *argv[]) std::cout << "/dev/" << drv->get_devname() << std::endl; if (g_conf->daemonize) { - forker.daemonize(); - global_init_postfork_start(g_ceph_context); global_init_postfork_finish(g_ceph_context); + forker.daemonize(); } init_async_signal_handler(); -- 2.39.5