diff --git a/ext/ddtrace.c b/ext/ddtrace.c index 76ca41bbee0..89da009c439 100644 --- a/ext/ddtrace.c +++ b/ext/ddtrace.c @@ -382,6 +382,10 @@ static inline bool dd_alter_prop(size_t prop_offset, zval *old_value, zval *new_ pspan = pspan->parent; } + if (DDTRACE_G(request_initialized)) { + ddtrace_sidecar_submit_root_span_data_direct(NULL); + } + return true; } @@ -1694,6 +1698,8 @@ static PHP_RSHUTDOWN_FUNCTION(ddtrace) { } dd_finalize_sidecar_lifecycle(); + DDTRACE_G(request_initialized) = false; + ddtrace_telemetry_rshutdown(); ddtrace_sidecar_rshutdown(); @@ -1725,7 +1731,6 @@ zend_result ddtrace_post_deactivate(void) { // zai config may be accessed indirectly via other modules RSHUTDOWN, so delay this until the last possible time zai_config_rshutdown(); - DDTRACE_G(request_initialized) = false; return SUCCESS; } diff --git a/ext/sidecar.h b/ext/sidecar.h index 30c891dd356..790c39c3a87 100644 --- a/ext/sidecar.h +++ b/ext/sidecar.h @@ -16,6 +16,7 @@ void ddtrace_sidecar_submit_root_span_data(void); void ddtrace_sidecar_push_tag(ddog_Vec_Tag *vec, ddog_CharSlice key, ddog_CharSlice value); void ddtrace_sidecar_push_tags(ddog_Vec_Tag *vec, zval *tags); ddog_Endpoint *ddtrace_sidecar_agent_endpoint(void); +void ddtrace_sidecar_submit_root_span_data_direct(ddtrace_root_span_data *root); void ddtrace_sidecar_send_debugger_data(ddog_Vec_DebuggerPayload payloads); void ddtrace_sidecar_send_debugger_datum(ddog_DebuggerPayload *payload); diff --git a/libdatadog b/libdatadog index cb1856c6007..356f76a818d 160000 --- a/libdatadog +++ b/libdatadog @@ -1 +1 @@ -Subproject commit cb1856c60073eb48bb3e0f41f478adb38dc33756 +Subproject commit 356f76a818d164c954d2a09e54e2e8c41537a053