From 82ea1216205c48b87d798e0b1af4c3fdc096285d Mon Sep 17 00:00:00 2001 From: Alexandre Rulleau Date: Thu, 30 Apr 2026 14:17:28 +0200 Subject: [PATCH] fix(ci): restore RC write-mode NULL-swap and fix usleep(float) in agent-env test - ext/remote_config.c: revert WRITE-mode path from remote_config_writing bool back to the NULL-swap pattern. Commit 7e215d9ec introduced a regression where dynamic_config_multiconfig.phpt returns default INI values (-1/"true") instead of the merged RC values (0.7/"1") on PHP 7.4. - tests/ext/request-replayer/dd_trace_agent_env.phpt: replace usleep(floor(...) * 100000) with dd_trace_internal_fn('await_agent_info', 15000). floor() returns float; PHP 8 usleep() expects int, emitting E_WARNING which run-tests.php treats as fatal, aborting the entire valgrind test pass. --- ext/remote_config.c | 5 +++-- tests/ext/request-replayer/dd_trace_agent_env.phpt | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ext/remote_config.c b/ext/remote_config.c index a6600b6f620..d3fe8bde31e 100644 --- a/ext/remote_config.c +++ b/ext/remote_config.c @@ -99,9 +99,10 @@ static zend_string *dd_dynamic_configuration_update(ddog_CharSlice config, zend_ } } else { ZEND_ASSERT(mode == DDOG_DYNAMIC_CONFIG_UPDATE_MODE_WRITE); - DDTRACE_G(remote_config_writing) = true; + ddog_RemoteConfigState *saved = DDTRACE_G(remote_config_state); + DDTRACE_G(remote_config_state) = NULL; zend_alter_ini_entry(name, value, ZEND_INI_USER, ZEND_INI_STAGE_RUNTIME); - DDTRACE_G(remote_config_writing) = false; + DDTRACE_G(remote_config_state) = saved; zend_string_release(value); } zend_string_release(name); diff --git a/tests/ext/request-replayer/dd_trace_agent_env.phpt b/tests/ext/request-replayer/dd_trace_agent_env.phpt index 50de644e70a..93b48325436 100644 --- a/tests/ext/request-replayer/dd_trace_agent_env.phpt +++ b/tests/ext/request-replayer/dd_trace_agent_env.phpt @@ -37,11 +37,10 @@ $rr = new RequestReplayer(); $span = \DDTrace\start_span(); // make sure sidecar keeps up with us -$start = microtime(true); \DDTrace\start_trace_span(); \DDTrace\close_span(); $rr->waitForDataAndReplay(); -usleep(floor(microtime(true) - $start) * 100000); +dd_trace_internal_fn('await_agent_info', 15000); \DDTrace\close_span(); var_dump($span->env);