Skip to content

Maker mode runs the full execution loop on context.Background() with no overall deadline #230

Description

@rafeegnash

Problem

The maker apply/plan entry points create ctx := context.Background() and pass it through the entire exec loop, including LLM calls and AWS CLI subprocesses launched via exec.CommandContext (internal/maker/exec.go:1344+). Because the context never carries a deadline, a stalled AWS CLI invocation or an unresponsive LLM endpoint leaves the loop blocked indefinitely; the only escape is Ctrl-C, and any non-interactive/automated invocation (e.g. piped --apply) hangs forever.

Where

  • cmd/ask.go:496
  • cmd/ask.go:237

Root cause

Root context for long-running maker execution is context.Background() with no WithTimeout/WithCancel wrapping, so the CommandContext-based cancellation plumbing has nothing to fire on.

How to fix

Wrap the maker root context with a sensible overall deadline (and/or per-command timeouts), e.g. ctx, cancel := context.WithTimeout(context.Background(), N*time.Minute); defer cancel(), and/or honor a --timeout flag. Per-command sub-deadlines for AWS CLI calls would bound individual hangs while letting the loop continue.

Acceptance criteria

A maker run where one AWS CLI command never returns is cancelled at the configured deadline with a clear timeout error rather than hanging the process; covered by a test using a fake aws binary that sleeps.

Severity: low · from holistic hardening review.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions