s3:debug: enable logging for early startup failures
authorRalph Wuerthner <ralph.wuerthner@de.ibm.com>
Mon, 25 Mar 2019 14:17:07 +0000 (15:17 +0100)
committerChristof Schmitt <cs@samba.org>
Thu, 18 Apr 2019 22:21:15 +0000 (22:21 +0000)
Commit c89a33a07a 'debug: Use backends instead of explicitly logging to
syslog or file' introduced a regression where early startup failures (e.g.
unable to connect to CTDB) are no longer logged because the debug subsystem
is not yet fully initialized. Enable logging again with reasonable defaults
when reopen_logs() is called and the parameter file is not yet parsed.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13904

Signed-off-by: Ralph Wuerthner <ralph.wuerthner@de.ibm.com>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Christof Schmitt <cs@samba.org>
Autobuild-User(master): Christof Schmitt <cs@samba.org>
Autobuild-Date(master): Thu Apr 18 22:21:15 UTC 2019 on sn-devel-144

lib/util/debug_s3.c

index 381b9d4..5384ac1 100644 (file)
@@ -47,6 +47,25 @@ bool reopen_logs(void)
                                   lp_logging(talloc_tos()),
                                   lp_syslog(),
                                   lp_syslog_only());
+       } else {
+               /*
+                * Parameters are not yet loaded - configure debugging with
+                * reasonable defaults to enable logging for early
+                * startup failures.
+                */
+               struct debug_settings settings = {
+                       .max_log_size = 5000,
+                       .timestamp_logs = true,
+                       .debug_prefix_timestamp = false,
+                       .debug_hires_timestamp = true,
+                       .debug_pid = false,
+                       .debug_uid = false,
+                       .debug_class = false,
+               };
+               debug_set_settings(&settings,
+                                  "file",
+                                  1,
+                                  false);
        }
        return reopen_logs_internal();
 }