Skip to content

add test to reproduce issue with signal: broken pipe on graceful shutdown#523

Closed
dastrobu wants to merge 1 commit intohashicorp:mainfrom
dastrobu:test/expected-interrupt-signal,-received-signal-broken-pipe
Closed

add test to reproduce issue with signal: broken pipe on graceful shutdown#523
dastrobu wants to merge 1 commit intohashicorp:mainfrom
dastrobu:test/expected-interrupt-signal,-received-signal-broken-pipe

Conversation

@dastrobu
Copy link
Copy Markdown

Related Issue

Relates to:

Description

This is a test to show the issue with signal: broken pipe on graceful shutdown, introduced by #512.
The PR only contains a test and no fix yet, as requested per comment from @radeksimko.

The unit test TestGracefulCancellation_interruption_on_apply usually fails with:

expected interrupt signal, received "signal: broken pipe"

Although sometimes I have also seen:

expected interrupt signal, received "exit status 255"

It seems to depend on timing.

In our production code, we would love to see graceful shutdown being handled correctly, as intended by #512.
However, we are observing signal: broken pipe and a locked Terraform state, which is what we would like to get rid of to avoid the need to manually unlock the state again.

I can try to provide a fix as well if there is some guidance on how to do it.

Rollback Plan

  • If a change needs to be reverted, we will roll out an update to the code within 7 days.

Changes to Security Controls

Are there any changes to security controls (access controls, encryption, logging) in this pull request? If so, explain.

@dastrobu dastrobu requested review from a team as code owners May 21, 2025 09:21
@hashicorp-cla-app
Copy link
Copy Markdown

hashicorp-cla-app bot commented May 21, 2025

CLA assistant check
All committers have signed the CLA.

@dastrobu dastrobu force-pushed the test/expected-interrupt-signal,-received-signal-broken-pipe branch 2 times, most recently from 728e132 to 127f408 Compare May 21, 2025 09:33
@dastrobu dastrobu force-pushed the test/expected-interrupt-signal,-received-signal-broken-pipe branch from 127f408 to 0b6b493 Compare May 21, 2025 09:34
@radeksimko
Copy link
Copy Markdown
Member

@dastrobu This looks quite promising. I'll look into this in more detail when I get a moment. Thanks a lot for sharing this test case.

@radeksimko radeksimko self-assigned this May 21, 2025
@dastrobu
Copy link
Copy Markdown
Author

dastrobu commented Jul 9, 2025

@radeksimko did you have a chance to take a look at this?

@busser
Copy link
Copy Markdown
Contributor

busser commented Jul 22, 2025

Thanks a lot for this test! It made it a lot easier to figure out what was going on.

I've implemented another test that fits into tfexec's E2E test suite, as well as fix, in PR #527.

@radeksimko
Copy link
Copy Markdown
Member

Thank you for the repro case - this was really helpful in getting to the root cause and having it fixed, as per #527

That PR already contains more fine-grained unit tests which I'd consider sufficient for avoiding regressions, so I am going to close this PR.

@radeksimko radeksimko closed this Aug 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants