Skip to content

Commit

Permalink
Fix actions not being relayed in some circumstances
Browse files Browse the repository at this point in the history
EnqueuedTelemetryData has actions stored directly in an "actions" field,
but also dependencies, configurations and integrations in separate
fields; extract_telemetry_actions() converts from the latter into proper
TelemetryActions.

However, this method was being called only from a branch of
register_service_and_flush_queued_actions() that would be hit when
RuntimeInfo::apps does not already contain the key corresponding to the
(service, env) in question (so, essentially, deps/confs/integrations
would be lost on all but the first call).
  • Loading branch information
cataphract committed Dec 5, 2024
1 parent b80b607 commit b439363
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions sidecar/src/service/sidecar_server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,13 @@ impl SidecarInterface for SidecarServer {
}

app.telemetry.send_msgs(actions).await.ok();

let mut extracted_actions: Vec<TelemetryActions> = vec![];
enqueued_data
.extract_telemetry_actions(&mut extracted_actions)
.await;
app.telemetry.send_msgs(extracted_actions).await.ok();

// Ok, we dequeued all messages, now new enqueue_actions calls can handle it
completer.complete((service_name, env_name)).await;
}
Expand Down

0 comments on commit b439363

Please sign in to comment.