Skip to content

Commit ba0146f

Browse files
committed
fix(sidecar): use bare process_tags for RC Target to keep hash consistent
The `Target` struct in datadog-remote-config derives Hash over all fields including process_tags. Both the sidecar (RC write side) and the tracer (RC read side via ddog_remote_configs_service_env_change) must agree on the Target hash, and the tracer passes the bare process_tags Vec. Augmenting only the sidecar side with svc.* via `process_tags_with_svc_source()` made the Target hashes diverge, orphaning RC configs in SHM (probes never installed, dynamic config never applied). For now revert this single call site to bare process_tags. A proper follow-up should either exclude process_tags from Target's Hash/Eq impl, or separate Target's identity fields from the payload metadata fields. Trace + telemetry svc.* injection is unaffected.
1 parent ccafbb2 commit ba0146f

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

datadog-sidecar/src/service/runtime_info.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,10 @@ impl ActiveApplication {
144144
.expect("Expecting remote config invariants to be set early")
145145
.clone();
146146

147-
let process_tags = session.process_tags_with_svc_source();
147+
// Target is hashed on the sidecar side and on the PHP read side
148+
// (sidecar.c:ddog_remote_configs_service_env_change). PHP passes the
149+
// bare process_tags Vec, so we must too — otherwise SHM lookups miss.
150+
let process_tags = session.process_tags.lock_or_panic().clone();
148151

149152
if *session.remote_config_enabled.lock_or_panic() {
150153
self.remote_config_guard = Some(

0 commit comments

Comments
 (0)