chef / chef/chef-server

Erlang's default SIGTERM behavior of calling `init:stop()` results in runit timeout

Open
#2,106 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Epic
Dominant language
Erlang
Stars
303
Forks
211
Avg merge
1d 8h
Merged PRs (30d)
5

Description

Since upgrading to OTP 19+ we've had in place a serious of work-around to account for the fact that SIGTERM's new default behavior of calling init:stop() results in a runit timeout.

When I run init:stop() on erchef when running in the foreground, the application does eventually stop, so it is unclear why the new SIGTERM behavior does not work for us.

Ideally we would be able to use this new behavior for a more orderly service shutdown.

Aha! Link: https://chef.aha.io/features/SH-285

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is named. Begin with erchef's foreground shutdown path and its runit service behavior under OTP 19+, comparing init:stop() with SIGTERM. Done means SIGTERM stops erchef before runit's timeout while preserving an orderly shutdown; check the linked Aha feature for current scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
erlang
Domain
backend, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.