Skip to content

Commit 1005428

Browse files
committed
fix: register trace context before restore/warm-start, sanitize logged headers
1 parent c1021f2 commit 1005428

File tree

2 files changed

+26
-21
lines changed

2 files changed

+26
-21
lines changed

apps/supervisor/src/index.ts

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,27 @@ class ManagedSupervisor {
220220

221221
const { checkpoint, ...rest } = message;
222222

223+
// Register trace context early so snapshot spans work for all paths
224+
// (cold create, restore, warm start). Re-registration on restore is safe
225+
// since dequeue always provides fresh context.
226+
if (this.isComputeMode && env.COMPUTE_TRACE_SPANS_ENABLED) {
227+
const traceparent =
228+
message.run.traceContext &&
229+
"traceparent" in message.run.traceContext &&
230+
typeof message.run.traceContext.traceparent === "string"
231+
? message.run.traceContext.traceparent
232+
: undefined;
233+
234+
if (traceparent) {
235+
this.workloadServer.registerRunTraceContext(message.run.friendlyId, {
236+
traceparent,
237+
envId: message.environment.id,
238+
orgId: message.organization.id,
239+
projectId: message.project.id,
240+
});
241+
}
242+
}
243+
223244
if (checkpoint) {
224245
this.logger.debug("Restoring run", { runId: message.run.id });
225246

@@ -293,24 +314,6 @@ class ManagedSupervisor {
293314
return;
294315
}
295316

296-
if (this.isComputeMode && env.COMPUTE_TRACE_SPANS_ENABLED) {
297-
const traceparent =
298-
message.run.traceContext &&
299-
"traceparent" in message.run.traceContext &&
300-
typeof message.run.traceContext.traceparent === "string"
301-
? message.run.traceContext.traceparent
302-
: undefined;
303-
304-
if (traceparent) {
305-
this.workloadServer.registerRunTraceContext(message.run.friendlyId, {
306-
traceparent,
307-
envId: message.environment.id,
308-
orgId: message.organization.id,
309-
projectId: message.project.id,
310-
});
311-
}
312-
}
313-
314317
try {
315318
if (!message.deployment.friendlyId) {
316319
// mostly a type guard, deployments always exists for deployed environments

apps/supervisor/src/workloadServer/index.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -282,16 +282,18 @@ export class WorkloadServer extends EventEmitter<WorkloadServerEvents> {
282282
{
283283
paramsSchema: WorkloadActionParams,
284284
handler: async ({ reply, params, req }) => {
285-
this.logger.debug("Suspend request", { params, headers: req.headers });
286-
287285
const runnerId = this.runnerIdFromRequest(req);
288286
const deploymentVersion = this.deploymentVersionFromRequest(req);
289287
const projectRef = this.projectRefFromRequest(req);
290288

289+
this.logger.debug("Suspend request", { params, runnerId, deploymentVersion, projectRef });
290+
291291
if (!runnerId || !deploymentVersion || !projectRef) {
292292
this.logger.error("Invalid headers for suspend request", {
293293
...params,
294-
headers: req.headers,
294+
runnerId,
295+
deploymentVersion,
296+
projectRef,
295297
});
296298
reply.json(
297299
{

0 commit comments

Comments
 (0)