]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: zlog stays running on shutdown
authorDavid Lamparter <equinox@opensourcerouting.org>
Fri, 26 Jul 2024 23:43:44 +0000 (16:43 -0700)
committerDavid Lamparter <equinox@opensourcerouting.org>
Thu, 17 Oct 2024 11:58:57 +0000 (13:58 +0200)
No `zlog_fini()`, please.  Getting log messages until the end is more
important than leaking memory allocated for zlog targets.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
lib/libfrr.c

index f2247a48e555141be4aaded617e486c7af1e90e4..00ee57d8aad8581d1dca29ecb8573c044d32fefe 100644 (file)
@@ -1269,7 +1269,21 @@ void frr_fini(void)
        event_master_free(master);
        master = NULL;
        zlog_tls_buffer_fini();
-       zlog_fini();
+
+       if (0) {
+               /* this is intentionally disabled.  zlog remains running until
+                * exit(), so even the very last item done during shutdown can
+                * have its zlog() messages written out.
+                *
+                * Yes this causes memory leaks.  They are explicitly marked
+                * with DEFINE_MGROUP_ACTIVEATEXIT, which is only used for
+                * log target memory allocations, and excluded from leak
+                * reporting at shutdown.  This is strongly preferable over
+                * just discarding error messages at shutdown.
+                */
+               zlog_fini();
+       }
+
        /* frrmod_init -> nothing needed / hooks */
        rcu_shutdown();