Skip to content

Commit 933677e

Browse files
committed
fix: revert to default behavior for SIGTERM and SIGINT signals
1 parent 080d48a commit 933677e

File tree

5 files changed

+26
-2
lines changed

5 files changed

+26
-2
lines changed

lib/addNewMask.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ require('@codefresh-io/cf-telemetry/init');
33
// ↓ Keep one blank line below to prevent automatic import reordering
44

55
const { Logger } = require('@codefresh-io/cf-telemetry/logs');
6-
const { getServerAddress } = require('./helpers');
6+
const { getServerAddress, registerExitHandlers } = require('./helpers');
77

88
const logger = new Logger('codefresh:containerLogger:addNewMask');
99

@@ -55,6 +55,8 @@ async function updateMasks(secret) {
5555
}
5656

5757
if (require.main === module) {
58+
registerExitHandlers();
59+
5860
// first argument is the secret key second argument is the secret value
5961
if (process.argv.length < 4) {
6062
logger.log('not enough arguments, need secret key and secret value');

lib/helpers.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,20 @@ const getServerAddress = async () => {
5555
}
5656
};
5757

58+
/**
59+
* As `@codefresh-io/cf-telemetry/init` changes the original node.js behavior of how SIGTERM and SIGINT
60+
* signals are handled, we revert this change back to the original node.js behavior.
61+
*/
62+
const registerExitHandlers = () => {
63+
process.on('SIGTERM', () => {
64+
process.exit(143); // default exit code for SIGTERM
65+
});
66+
67+
process.on('SIGINT', () => {
68+
process.exit(130); // default exit code for SIGINT
69+
});
70+
};
71+
5872
module.exports = {
5973
/**
6074
* Polyfill of `Promise.withResolvers`, TC39 Stage 4 proposal.
@@ -64,4 +78,5 @@ module.exports = {
6478
watchForBuildFinishedSignal,
6579
saveServerAddress,
6680
getServerAddress,
81+
registerExitHandlers,
6782
};

lib/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ require('@codefresh-io/cf-telemetry/init');
44

55
const otel = require('@codefresh-io/cf-telemetry/otel');
66
const { Logger: Logs } = require('@codefresh-io/cf-telemetry/logs');
7+
const { watchForBuildFinishedSignal, registerExitHandlers } = require('./helpers');
8+
9+
registerExitHandlers();
710

811
const logs = new Logs('codefresh:containerLogger:index');
912

@@ -17,7 +20,6 @@ const unhandledErrorsTotal = otel.cf.getMeter().createCounter(
1720
);
1821

1922
const Logger = require('./logger');
20-
const { watchForBuildFinishedSignal } = require('./helpers');
2123

2224
const taskLoggerConfig = JSON.parse(process.env.TASK_LOGGER_CONFIG);
2325

lib/isReady.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ const { readFileSync } = require('fs');
66
const _ = require('lodash');
77
const { Logger } = require('@codefresh-io/cf-telemetry/logs');
88
const { ContainerHandlingStatus } = require('./enums');
9+
const { registerExitHandlers } = require('./helpers');
10+
11+
registerExitHandlers();
912

1013
const logger = new Logger('codefresh:containerLogger:isReady');
1114

lib/waitUntilFinish.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const path = require('path');
77
const Q = require('q');
88
const { Logger } = require('@codefresh-io/cf-telemetry/logs');
99
const { BuildFinishedSignalFilename } = require('./enums');
10+
const { registerExitHandlers } = require('./helpers');
1011

1112
const logger = new Logger('codefresh:containerLogger:waitUntilFinish');
1213

@@ -87,6 +88,7 @@ class Waiter {
8788
}
8889

8990
if (require.main === module) {
91+
registerExitHandlers();
9092
const filepath = path.resolve(__dirname, 'state.json');
9193
Waiter.wait(filepath);
9294
} else {

0 commit comments

Comments
 (0)