This commit is contained in:
Balena CI 2023-01-31 19:43:30 +00:00
parent 11952fd266
commit 8b7cecfd3e
No known key found for this signature in database
GPG Key ID: E2ADEC9754128402
6 changed files with 52 additions and 6 deletions

View File

@ -1,3 +1,44 @@
- commits:
- subject: Add SIGTERM listener on application start
hash: 6683bca07da0e6b8f822dfcb22211b24a182dc16
body: >
As reported by issue #2100, the supervisor was not correctly reacting to
`SIGTERM` sent by the engine when terminating the process (for instance
before a reboot). This would lead to the supervisor requiring an
additional 10 seconds to terminate (after which the engine will send a
`SIGKILL`).
The reason for this is explained by the following info coming from Node
> Node.js was not designed to run as PID 1 which leads to unexpected behaviour when running inside of Docker. For example, a Node.js process running as PID 1 will not respond to `SIGINT` (`CTRL-C`) and similar signals. [reference](https://github.com/nodejs/docker-node/blob/main/docs/BestPractices.md#handling-kernel-signals)
On internal testing, it was discovered that simply adding a listener for
the signal on the Node process was enough to handle the signal, even
when the process runs as PID 1.
This adds a listener for `SIGTERM` before starting the supervisor main
loop.
footer:
Closes: "#2100"
closes: "#2100"
Change-type: patch
change-type: patch
author: Felipe Lalanne
nested: []
version: 14.6.4
title: ""
date: 2023-01-31T19:43:26.722Z
- commits:
- subject: Update deploy-to-balena action to 0.26.0
hash: 2bd2879cc580cd5b6a7cba73bc10d8ba55a3cf4c

View File

@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
This project adheres to [Semantic Versioning](http://semver.org/).
# v14.6.4
## (2023-01-31)
* Add SIGTERM listener on application start [Felipe Lalanne]
# v14.6.3
## (2023-01-30)

View File

@ -1 +1 @@
14.6.3
14.6.4

View File

@ -2,6 +2,6 @@ name: balena-supervisor
description: 'Balena Supervisor: balena''s agent on devices.'
joinable: false
type: sw.application
version: 14.6.3
version: 14.6.4
provides:
- slug: sw.compose.long-volume-syntax

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "balena-supervisor",
"version": "14.6.3",
"version": "14.6.4",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "balena-supervisor",
"version": "14.6.3",
"version": "14.6.4",
"license": "Apache-2.0",
"dependencies": {
"@balena/happy-eyeballs": "0.0.6",

View File

@ -1,7 +1,7 @@
{
"name": "balena-supervisor",
"description": "This is balena's Supervisor, a program that runs on IoT devices and has the task of running user Apps (which are Docker containers), and updating them as the balena API informs it to.",
"version": "14.6.3",
"version": "14.6.4",
"license": "Apache-2.0",
"repository": {
"type": "git",
@ -146,6 +146,6 @@
}
},
"versionist": {
"publishedAt": "2023-01-30T18:59:38.829Z"
"publishedAt": "2023-01-31T19:43:27.427Z"
}
}