Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stop starting applications when terminating node #9494

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

michalmuskala
Copy link
Contributor

@michalmuskala michalmuskala commented Feb 25, 2025

Applications that didn't finish starting could be left in a half-broken state during node shutdown. In particular, their dependencies would be already shut down, while the application itself was running, likely with many errors. The behaviour is to replicate what happens if the application finished starting - with timeout set, we'll respect this timeout; otherwise we'll wait forever.

This has some setup work in earlier commits, trying to make the change gradual. I recommend reviewing the commits separately.

Fixes #8485

Copy link
Contributor

github-actions bot commented Feb 25, 2025

CT Test Results

    2 files     70 suites   1h 7m 42s ⏱️
1 570 tests 1 327 ✅ 242 💤 1 ❌
1 820 runs  1 527 ✅ 292 💤 1 ❌

For more details on these failures, see this check.

Results for commit 2437d38.

♻️ This comment has been updated with latest results.

To speed up review, make sure that you have read Contributing to Erlang/OTP and that all checks pass.

See the TESTING and DEVELOPMENT HowTo guides for details about how to run test locally.

Artifacts

// Erlang/OTP Github Action Bot

This is necessary to be able to later interact with this process
…node

Applications that didn't finish starting could be left in a half-broken
state during node shutdown. In particular, their dependencies would be
already shut down, while the application itself was running, likely
with many errors.
The behaviour is to replicate what happens if the application finished
starting - with timeout set, we'll respect this timeout; otherwise
we'll wait forever.
@michalmuskala
Copy link
Contributor Author

I pushed an update that skips the change removing From field from the starting list, and just adds another Starter - it's easier to understand this change isolated like that, and convince yourself it's correct.

@michalmuskala
Copy link
Contributor Author

The test failure looks unrelated. As to the header checks - similar test modules don't seem to have them. I'm not sure if there's some opt-out list or how to fix that. Advice would be appreciated.

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.

application_controller don't stop starting application correctly in terminate
1 participant