From 647040e29b2b40712518ec2e84d28ad2ce58df15 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 1a0e3140c2642..801b0093d1d6f 100644 --- a/src/tools/rbd_ggate/main.cc +++ b/src/tools/rbd_ggate/main.cc @@ -93,14 +93,13 @@ static int do_map(int argc, const char *argv[]) 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); @@ -174,9 +173,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