Skip to content

pr merge: a SIGTERM during the release wait exits 143 without the document #2624

Open

Description

@teemow

Problem

After the squash merge, devctl pr merge waits for the release (--release-timeout, 30 minutes). A SIGTERM during that wait ends the process with exit 143 and no document on stdout: the caller learns neither that the pull request is merged nor what was still open, and a wrapper has to reconstruct "merged per GitHub, release unconfirmed" from the API by itself.

Observed on 2026-10-09 with giantswarm/agent-platform#878: GitHub merged it at 18:41 CEST; its tag pipeline did not start during CircleCI's incident that evening; at 19:10, within the 30-minute release wait, the caller's hung-merge handling ended devctl with SIGTERM. devctl exited 143 without a document, and the wrapper (the beekeeper merge gate) reported "devctl ended with exit 143 before its document, and GitHub reports the pull request merged: its release is unconfirmed, confirm it with devctl release wait giantswarm/agent-platform --pr 878".

Related: #2623 (the release wait's fixed 30 minutes), #2606 (promote and a candidate without a commit status).

Proposed solution

pr merge catches SIGTERM and SIGINT. After the merge it ends the way the release timeout does: the document on stdout with the merge (merged: true, the merge commit), the release unconfirmed with what was still open and the devctl release wait command that confirms it, exit 9. Before the merge the document says the wait was interrupted and nothing was merged, exit 2. pr wait, release wait and rollout wait end a signal the same way: their document and the timeout's code, never 143.

Acceptance criteria

  • A SIGTERM to devctl pr merge after the squash merge produces the document (merged, release unconfirmed, what was open, the confirm command) and exit 9.
  • A SIGTERM before the merge produces the document (nothing merged, interrupted) and exit 2.
  • pr wait, release wait and rollout wait end a signal with their document and the timeout's code.
  • The exit-code table in --help names the signal case.

This issue was written by an agent.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    • Status
      Inbox 📥

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions