@@ -1274,10 +1274,19 @@ static void dd_shutdown_hooks_and_observer(void) {
1274
1274
void dd_force_shutdown_tracing (void ) {
1275
1275
DDTRACE_G (in_shutdown ) = true;
1276
1276
1277
- ddtrace_close_all_open_spans (true); // All remaining userland spans (and root span)
1278
- if (ddtrace_flush_tracer (false, true) == FAILURE ) {
1279
- LOG (Warn , "Unable to flush the tracer" );
1280
- }
1277
+ zend_try {
1278
+ ddtrace_close_all_open_spans (true ); // All remaining userland spans (and root span)
1279
+ } zend_catch {
1280
+ LOG (Warn , "Failed to close remaining spans due to bailout" );
1281
+ } zend_end_try ();
1282
+
1283
+ zend_try {
1284
+ if (ddtrace_flush_tracer (false, true) == FAILURE ) {
1285
+ LOG (Warn , "Unable to flush the tracer" );
1286
+ }
1287
+ } zend_catch {
1288
+ LOG (Warn , "Unable to flush the tracer due to bailout" );
1289
+ } zend_end_try ();
1281
1290
1282
1291
// we here need to disable the tracer, so that further hooks do not trigger
1283
1292
ddtrace_disable_tracing_in_current_request (); // implicitly calling dd_clean_globals
@@ -1288,7 +1297,7 @@ void dd_force_shutdown_tracing(void) {
1288
1297
DDTRACE_G (in_shutdown ) = false;
1289
1298
}
1290
1299
1291
- static void dd_finalize_telemtry (void ) {
1300
+ static void dd_finalize_telemetry (void ) {
1292
1301
if (DDTRACE_G (telemetry_queue_id )) {
1293
1302
ddtrace_telemetry_finalize ();
1294
1303
DDTRACE_G (telemetry_queue_id ) = 0 ;
@@ -1315,7 +1324,7 @@ static PHP_RSHUTDOWN_FUNCTION(ddtrace) {
1315
1324
DDTRACE_G (active_stack ) = NULL ;
1316
1325
}
1317
1326
1318
- dd_finalize_telemtry ();
1327
+ dd_finalize_telemetry ();
1319
1328
if (DDTRACE_G (last_flushed_root_service_name )) {
1320
1329
zend_string_release (DDTRACE_G (last_flushed_root_service_name ));
1321
1330
DDTRACE_G (last_flushed_root_service_name ) = NULL ;
@@ -1990,7 +1999,7 @@ PHP_FUNCTION(dd_trace_internal_fn) {
1990
1999
ddtrace_coms_test_msgpack_consumer ();
1991
2000
RETVAL_TRUE ;
1992
2001
} else if (FUNCTION_NAME_MATCHES ("finalize_telemetry" )) {
1993
- dd_finalize_telemtry ();
2002
+ dd_finalize_telemetry ();
1994
2003
RETVAL_TRUE ;
1995
2004
} else if (FUNCTION_NAME_MATCHES ("dump_sidecar" )) {
1996
2005
if (!ddtrace_sidecar ) {
0 commit comments