9999#include "ddtrace_arginfo.h"
100100#include "distributed_tracing_headers.h"
101101#include "live_debugger.h"
102+ #include "agent_info.h"
102103
103104#if PHP_VERSION_ID < 70200
104105#pragma pop_macro("ZVAL_EMPTY_STRING")
@@ -655,6 +656,9 @@ static PHP_GSHUTDOWN_FUNCTION(ddtrace) {
655656 if (ddtrace_globals -> remote_config_state ) {
656657 ddog_shutdown_remote_config (ddtrace_globals -> remote_config_state );
657658 }
659+ if (ddtrace_globals -> agent_info_reader ) {
660+ ddog_drop_agent_info_reader (ddtrace_globals -> agent_info_reader );
661+ }
658662 zai_hook_gshutdown ();
659663 if (ddtrace_globals -> telemetry_buffer ) {
660664 ddog_sidecar_telemetry_buffer_drop (ddtrace_globals -> telemetry_buffer );
@@ -1497,7 +1501,6 @@ static void dd_rinit_once(void) {
14971501static pthread_once_t dd_rinit_once_control = PTHREAD_ONCE_INIT ;
14981502
14991503static void dd_initialize_request (void ) {
1500- DDTRACE_G (request_initialized ) = true;
15011504 DDTRACE_G (distributed_trace_id ) = (ddtrace_trace_id ){0 };
15021505 DDTRACE_G (distributed_parent_trace_id ) = 0 ;
15031506 DDTRACE_G (additional_global_tags ) = zend_new_array (0 );
@@ -1507,6 +1510,12 @@ static void dd_initialize_request(void) {
15071510 zend_hash_init (& DDTRACE_G (propagated_root_span_tags ), 8 , unused , ZVAL_PTR_DTOR , 0 );
15081511 zend_hash_init (& DDTRACE_G (tracestate_unknown_dd_keys ), 8 , unused , ZVAL_PTR_DTOR , 0 );
15091512
1513+ // Check for the env first, before the first RC
1514+ ddtrace_check_agent_info_env ();
1515+
1516+ // Do after env check, so that RC data is not updated before RC init
1517+ DDTRACE_G (request_initialized ) = true;
1518+
15101519 ddtrace_sidecar_rinit ();
15111520
15121521 // Things that should only run on the first RINIT after each minit.
@@ -1546,6 +1555,8 @@ static void dd_initialize_request(void) {
15461555 }
15471556#endif
15481557
1558+ ddtrace_agent_info_rinit ();
1559+
15491560 // Reset compile time after request init hook has compiled
15501561 ddtrace_compile_time_reset ();
15511562
@@ -2240,6 +2251,10 @@ void dd_internal_handle_fork(void) {
22402251 ddog_shutdown_remote_config (DDTRACE_G (remote_config_state ));
22412252 DDTRACE_G (remote_config_state ) = NULL ;
22422253 }
2254+ if (DDTRACE_G (agent_info_reader )) {
2255+ ddog_drop_agent_info_reader (DDTRACE_G (agent_info_reader ));
2256+ DDTRACE_G (agent_info_reader ) = NULL ;
2257+ }
22432258 ddtrace_seed_prng ();
22442259 ddtrace_generate_runtime_id ();
22452260 ddtrace_reset_sidecar_globals ();
0 commit comments