From e2ddbee13167a42ed19322984e2d3a443639c427 Mon Sep 17 00:00:00 2001 From: Bob Weinand Date: Thu, 1 Feb 2024 14:58:11 +0100 Subject: [PATCH] Add a couple comments around log ginit Signed-off-by: Bob Weinand --- ext/configuration.c | 3 ++- ext/ddtrace.c | 3 ++- ext/logging.c | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ext/configuration.c b/ext/configuration.c index a333482d24..da7e260d47 100644 --- a/ext/configuration.c +++ b/ext/configuration.c @@ -132,6 +132,7 @@ static void dd_ini_env_to_ini_name(const zai_str env_name, zai_config_name *ini_ bool ddtrace_config_minit(int module_number) { if (!zai_config_minit(config_entries, (sizeof config_entries / sizeof *config_entries), dd_ini_env_to_ini_name, module_number)) { + ddtrace_log_ginit(); LOG(Error, "Unable to load configuration; likely due to json symbols failing to resolve."); return false; } @@ -141,7 +142,7 @@ bool ddtrace_config_minit(int module_number) { // arduous way of accessing the decoded_value directly from zai_config_memoized_entries. zai_config_first_time_rinit(); - ddtrace_alter_dd_trace_debug(NULL, &zai_config_memoized_entries[DDTRACE_CONFIG_DD_TRACE_DEBUG].decoded_value); + ddtrace_log_ginit(); return true; } diff --git a/ext/ddtrace.c b/ext/ddtrace.c index 6e16943852..ec32e28cc3 100644 --- a/ext/ddtrace.c +++ b/ext/ddtrace.c @@ -898,7 +898,6 @@ static void dd_disable_if_incompatible_sapi_detected(void) { static PHP_MINIT_FUNCTION(ddtrace) { UNUSED(type); - ddtrace_log_init(); zai_hook_minit(); zai_uhook_minit(module_number); @@ -921,6 +920,8 @@ static PHP_MINIT_FUNCTION(ddtrace) { } // config initialization needs to be at the top + // This also initialiyzed logging, so no logs may be emitted before this. + ddtrace_log_init(); if (!ddtrace_config_minit(module_number)) { return FAILURE; } diff --git a/ext/logging.c b/ext/logging.c index 1f500fd441..f886e67a9f 100644 --- a/ext/logging.c +++ b/ext/logging.c @@ -27,6 +27,7 @@ static void dd_log_set_level(bool debug) { } } +// We need to ensure that logging is initialized (i.e. set) at least once per thread. void ddtrace_log_ginit(void) { dd_log_set_level(get_global_DD_TRACE_DEBUG()); }