Monorepo for Tangled
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

spdinle/nixery: make sure the complete task isn't dismissed as failed

+14 -14
+14 -14
spindle/engines/nixery/engine.go
··· 374 374 tailDone <- e.tailStep(ctx, wfLogger, mkExecResp.ID, idx) 375 375 }() 376 376 377 + // prefer tailDone over ctx.Done() to avoid false positives 378 + // when step completes at the same moment the deadline expires 377 379 select { 378 380 case <-tailDone: 379 - 380 - case <-ctx.Done(): 381 - // cleanup will be handled by DestroyWorkflow, since 382 - // Docker doesn't provide an API to kill an exec run 383 - // (sure, we could grab the PID and kill it ourselves, 384 - // but that's wasted effort) 385 - e.l.Warn("step timed out", "step", step.Name()) 381 + default: 382 + select { 383 + case <-tailDone: 386 384 387 - <-tailDone 385 + case <-ctx.Done(): 386 + // cleanup will be handled by DestroyWorkflow, since 387 + // Docker doesn't provide an API to kill an exec run 388 + // (sure, we could grab the PID and kill it ourselves, 389 + // but that's wasted effort) 390 + e.l.Warn("step timed out", "step", step.Name()) 388 391 389 - return engine.ErrTimedOut 390 - } 392 + <-tailDone 391 393 392 - select { 393 - case <-ctx.Done(): 394 - return ctx.Err() 395 - default: 394 + return engine.ErrTimedOut 395 + } 396 396 } 397 397 398 398 execInspectResp, err := e.docker.ContainerExecInspect(ctx, mkExecResp.ID)