Skip to content

Commit c46963f

Browse files
authored
Fix ordering condition in sidecar request start (#3805)
First, submit universal service tags (to ensure sidecar knows about our session), then process RC stuff, which may send data to the sidecar.
1 parent 6b55c3e commit c46963f

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

ext/sidecar.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -776,11 +776,6 @@ void ddtrace_sidecar_submit_root_span_data_direct(ddog_SidecarTransport **transp
776776
bool changed = true;
777777
if (DDTRACE_G(remote_config_state)) {
778778
changed = ddog_remote_configs_service_env_change(DDTRACE_G(remote_config_state), service_slice, env_slice, version_slice, &DDTRACE_G(active_global_tags), process_tags);
779-
if (!changed && root) {
780-
// ddog_remote_configs_service_env_change() generally only processes configs if they changed. However, upon request initialization it may be identical to the previous request.
781-
// However, at request shutdown some configs are unloaded. Explicitly forcing a processing step ensures these are re-loaded.
782-
ddog_process_remote_configs(DDTRACE_G(remote_config_state));
783-
}
784779
}
785780

786781
// Force resend on reconnect
@@ -813,6 +808,12 @@ void ddtrace_sidecar_submit_root_span_data_direct(ddog_SidecarTransport **transp
813808
ddtrace_ffi_try("Failed flushing filtered telemetry buffer",
814809
ddog_sidecar_telemetry_filter_flush(transport, ddtrace_sidecar_instance_id, &DDTRACE_G(sidecar_queue_id), ddtrace_telemetry_buffer(), ddtrace_telemetry_cache(), service_slice, env_slice));
815810
}
811+
812+
if (!changed && DDTRACE_G(remote_config_state)) {
813+
// ddog_remote_configs_service_env_change() generally only processes configs if they changed. However, upon request initialization it may be identical to the previous request.
814+
// However, at request shutdown some configs are unloaded. Explicitly forcing a processing step ensures these are re-loaded.
815+
ddog_process_remote_configs(DDTRACE_G(remote_config_state));
816+
}
816817
}
817818

818819
void ddtrace_sidecar_submit_root_span_data(void) {

0 commit comments

Comments
 (0)