fix: clinic.js 0kb output files
Something in our signal handlers/code that touched signal handlers conflicted with clinic.js's signal handler code. With this commit, we don't touch signal handlers at all if DEBUG mode is enabled.
This commit is contained in:
parent
29a1161c05
commit
b60a7fb145
5 changed files with 45 additions and 30 deletions
|
@ -8,14 +8,14 @@
|
|||
"watch-yaml-parse-test": "cross-env NODE_ENV=development tsc-watch --onSuccess \"node dist/backend/src/yamlParseTest.js\"",
|
||||
"build": "rimraf dist && tsc",
|
||||
"start-bot-dev": "cross-env NODE_ENV=development node -r ./register-tsconfig-paths.js --unhandled-rejections=strict --enable-source-maps --stack-trace-limit=30 --inspect=0.0.0.0:9229 dist/backend/src/index.js",
|
||||
"start-bot-dev-debug": "NODE_ENV=development clinic heapprofiler --collect-only --dest .clinic-bot -- node -r ./register-tsconfig-paths.js --unhandled-rejections=strict --enable-source-maps --stack-trace-limit=30 --inspect=0.0.0.0:9229 dist/backend/src/index.js",
|
||||
"start-bot-dev-debug": "NODE_ENV=development DEBUG=true clinic heapprofiler --collect-only --dest .clinic-bot -- node -r ./register-tsconfig-paths.js --unhandled-rejections=strict --enable-source-maps --stack-trace-limit=30 --inspect=0.0.0.0:9229 dist/backend/src/index.js",
|
||||
"start-bot-prod": "cross-env NODE_ENV=production node -r ./register-tsconfig-paths.js --unhandled-rejections=strict --enable-source-maps --stack-trace-limit=30 dist/backend/src/index.js",
|
||||
"start-bot-prod-debug": "NODE_ENV=production clinic heapprofiler --collect-only --dest .clinic-bot -- node -r ./register-tsconfig-paths.js --unhandled-rejections=strict --enable-source-maps --stack-trace-limit=30 dist/backend/src/index.js",
|
||||
"start-bot-prod-debug": "NODE_ENV=production DEBUG=true clinic heapprofiler --collect-only --dest .clinic-bot -- node -r ./register-tsconfig-paths.js --unhandled-rejections=strict --enable-source-maps --stack-trace-limit=30 dist/backend/src/index.js",
|
||||
"watch-bot": "cross-env NODE_ENV=development tsc-watch --onSuccess \"npm run start-bot-dev\"",
|
||||
"start-api-dev": "cross-env NODE_ENV=development node -r ./register-tsconfig-paths.js --unhandled-rejections=strict --enable-source-maps --stack-trace-limit=30 --inspect=0.0.0.0:9239 dist/backend/src/api/index.js",
|
||||
"start-api-dev-debug": "NODE_ENV=development clinic heapprofiler --collect-only --dest .clinic-api -- node -r ./register-tsconfig-paths.js --unhandled-rejections=strict --enable-source-maps --stack-trace-limit=30 --inspect=0.0.0.0:9239 dist/backend/src/api/index.js",
|
||||
"start-api-dev-debug": "NODE_ENV=development DEBUG=true clinic heapprofiler --collect-only --dest .clinic-api -- node -r ./register-tsconfig-paths.js --unhandled-rejections=strict --enable-source-maps --stack-trace-limit=30 --inspect=0.0.0.0:9239 dist/backend/src/api/index.js",
|
||||
"start-api-prod": "cross-env NODE_ENV=production node -r ./register-tsconfig-paths.js --unhandled-rejections=strict --enable-source-maps --stack-trace-limit=30 dist/backend/src/api/index.js",
|
||||
"start-api-prod-debug": "NODE_ENV=production clinic heapprofiler --collect-only --dest .clinic-api -- node -r ./register-tsconfig-paths.js --unhandled-rejections=strict --enable-source-maps --stack-trace-limit=30 dist/backend/src/api/index.js",
|
||||
"start-api-prod-debug": "NODE_ENV=production DEBUG=true clinic heapprofiler --collect-only --dest .clinic-api -- node -r ./register-tsconfig-paths.js --unhandled-rejections=strict --enable-source-maps --stack-trace-limit=30 dist/backend/src/api/index.js",
|
||||
"watch-api": "cross-env NODE_ENV=development tsc-watch --onSuccess \"npm run start-api-dev\"",
|
||||
"typeorm": "node -r ./register-tsconfig-paths.js ./node_modules/typeorm/cli.js",
|
||||
"migrate-prod": "cross-env NODE_ENV=production npm run typeorm -- migration:run",
|
||||
|
|
|
@ -50,6 +50,11 @@ const envType = z.object({
|
|||
DB_USER: z.string().optional().default("zeppelin"),
|
||||
DB_PASSWORD: z.string().optional(), // Default is set to DOCKER_MYSQL_PASSWORD further below
|
||||
DB_DATABASE: z.string().optional().default("zeppelin"),
|
||||
|
||||
DEBUG: z
|
||||
.string()
|
||||
.optional()
|
||||
.transform((str) => str === "true"),
|
||||
});
|
||||
|
||||
let toValidate = { ...process.env };
|
||||
|
|
|
@ -197,6 +197,10 @@ setInterval(() => {
|
|||
avgCount = 0;
|
||||
}, 5 * 60 * 1000);
|
||||
|
||||
if (env.DEBUG) {
|
||||
logger.info("NOTE: Bot started in DEBUG mode");
|
||||
}
|
||||
|
||||
logger.info("Connecting to database");
|
||||
connect().then(async (connection) => {
|
||||
const client = new Client({
|
||||
|
@ -429,6 +433,8 @@ connect().then(async (connection) => {
|
|||
logger.info("Logging in...");
|
||||
await client.login(env.BOT_TOKEN);
|
||||
|
||||
// Don't intercept any signals in DEBUG mode: https://github.com/clinicjs/node-clinic/issues/444#issuecomment-1474997090
|
||||
if (!env.DEBUG) {
|
||||
let stopping = false;
|
||||
const cleanupAndStop = async (code) => {
|
||||
if (stopping) {
|
||||
|
@ -452,4 +458,5 @@ connect().then(async (connection) => {
|
|||
logger.info("Received SIGTERM, exiting...");
|
||||
cleanupAndStop(0);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
|
@ -6,5 +6,8 @@
|
|||
* - This is imported as early as possible to avoid removing our own signal handlers
|
||||
*/
|
||||
import "threads";
|
||||
process.removeAllListeners("SIGINT");
|
||||
process.removeAllListeners("SIGTERM");
|
||||
import { env } from "./env";
|
||||
if (!env.DEBUG) {
|
||||
process.removeAllListeners("SIGINT");
|
||||
process.removeAllListeners("SIGTERM");
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# Exec is used to forward signals: https://unix.stackexchange.com/a/196053
|
||||
|
||||
cd /zeppelin/backend
|
||||
if [ -n "$DEBUG" ]; then
|
||||
if [ "$DEBUG" == "true" ]; then
|
||||
echo "DEBUG MODE: Starting bot container without starting the bot"
|
||||
exec tail -f /dev/null
|
||||
else
|
||||
|
|
Loading…
Add table
Reference in a new issue