diff --git a/db/old_migrations/patch-fix-kafka-producer-booleans.sql b/db/old_migrations/patch-fix-kafka-producer-booleans.sql index 505f65a9..be2e992f 100644 --- a/db/old_migrations/patch-fix-kafka-producer-booleans.sql +++ b/db/old_migrations/patch-fix-kafka-producer-booleans.sql @@ -15,12 +15,14 @@ ALTER TABLE monitor ALTER TABLE monitor ADD COLUMN kafka_producer_allow_auto_topic_creation BOOLEAN default 0 NOT NULL; +-- These SQL is still not fully safe. See https://github.com/louislam/uptime-kuma/issues/4039. + -- Set bring old values from `_old` COLUMNs to correct ones -UPDATE monitor SET kafka_producer_allow_auto_topic_creation = monitor.kafka_producer_allow_auto_topic_creation_old - WHERE monitor.kafka_producer_allow_auto_topic_creation_old IS NOT NULL; +-- UPDATE monitor SET kafka_producer_allow_auto_topic_creation = monitor.kafka_producer_allow_auto_topic_creation_old +-- WHERE monitor.kafka_producer_allow_auto_topic_creation_old IS NOT NULL; -UPDATE monitor SET kafka_producer_ssl = monitor.kafka_producer_ssl_old - WHERE monitor.kafka_producer_ssl_old IS NOT NULL; +-- UPDATE monitor SET kafka_producer_ssl = monitor.kafka_producer_ssl_old +-- WHERE monitor.kafka_producer_ssl_old IS NOT NULL; -- Remove old COLUMNs ALTER TABLE monitor diff --git a/db/patch-timeout.sql b/db/patch-timeout.sql new file mode 100644 index 00000000..f2571120 --- /dev/null +++ b/db/patch-timeout.sql @@ -0,0 +1,7 @@ +-- You should not modify if this have pushed to Github, unless it does serious wrong with the db. +BEGIN TRANSACTION; + +UPDATE monitor SET timeout = (interval * 0.8) +WHERE timeout IS NULL OR timeout <= 0; + +COMMIT; diff --git a/package-lock.json b/package-lock.json index caea9ec4..d6b81648 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "uptime-kuma", - "version": "1.23.4", + "version": "1.23.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "uptime-kuma", - "version": "1.23.4", + "version": "1.23.5", "license": "MIT", "dependencies": { "@grpc/grpc-js": "~1.7.3", diff --git a/package.json b/package.json index be974c7a..5498538a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "uptime-kuma", - "version": "1.23.4", + "version": "1.23.5", "license": "MIT", "repository": { "type": "git", @@ -41,7 +41,7 @@ "build-docker-nightly-local": "npm run build && docker build -f docker/dockerfile -t louislam/uptime-kuma:nightly2 --target nightly .", "build-docker-pr-test": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64 -t louislam/uptime-kuma:pr-test2 --target pr-test2 . --push", "upload-artifacts": "docker buildx build -f docker/dockerfile --platform linux/amd64 -t louislam/uptime-kuma:upload-artifact --build-arg VERSION --build-arg GITHUB_TOKEN --target upload-artifact . --progress plain", - "setup": "git checkout 1.23.4 && npm ci --production && npm run download-dist", + "setup": "git checkout 1.23.5 && npm ci --production && npm run download-dist", "download-dist": "node extra/download-dist.js", "mark-as-nightly": "node extra/mark-as-nightly.js", "reset-password": "node extra/reset-password.js", diff --git a/server/database.js b/server/database.js index 0bcbedee..4162e331 100644 --- a/server/database.js +++ b/server/database.js @@ -104,7 +104,8 @@ class Database { "patch-add-timeout-monitor.sql": true, "patch-add-gamedig-given-port.sql": true, "patch-notification-config.sql": true, - "patch-fix-kafka-producer-booleans.sql": true, // The last file so far converted to a knex migration file + "patch-fix-kafka-producer-booleans.sql": true, + "patch-timeout.sql": true, // The last file so far converted to a knex migration file }; /** diff --git a/server/model/monitor.js b/server/model/monitor.js index 7a9be7cb..193d95f3 100644 --- a/server/model/monitor.js +++ b/server/model/monitor.js @@ -376,7 +376,7 @@ class Monitor extends BeanModel { // Runtime patch timeout if it is 0 // See https://github.com/louislam/uptime-kuma/pull/3961#issuecomment-1804149144 - if (this.timeout <= 0) { + if (!this.timeout || this.timeout <= 0) { this.timeout = this.interval * 1000 * 0.8; } @@ -450,6 +450,7 @@ class Monitor extends BeanModel { const httpsAgentOptions = { maxCachedSessions: 0, // Use Custom agent to disable session reuse (https://github.com/nodejs/node/issues/3940) rejectUnauthorized: !this.getIgnoreTls(), + secureOptions: crypto.constants.SSL_OP_LEGACY_SERVER_CONNECT, }; log.debug("monitor", `[${this.name}] Prepare Options for axios`); @@ -665,6 +666,7 @@ class Monitor extends BeanModel { httpsAgent: CacheableDnsHttpAgent.getHttpsAgent({ maxCachedSessions: 0, // Use Custom agent to disable session reuse (https://github.com/nodejs/node/issues/3940) rejectUnauthorized: !this.getIgnoreTls(), + secureOptions: crypto.constants.SSL_OP_LEGACY_SERVER_CONNECT, }), httpAgent: CacheableDnsHttpAgent.getHttpAgent({ maxCachedSessions: 0, @@ -716,6 +718,7 @@ class Monitor extends BeanModel { httpsAgent: CacheableDnsHttpAgent.getHttpsAgent({ maxCachedSessions: 0, // Use Custom agent to disable session reuse (https://github.com/nodejs/node/issues/3940) rejectUnauthorized: !this.getIgnoreTls(), + secureOptions: crypto.constants.SSL_OP_LEGACY_SERVER_CONNECT, }), httpAgent: CacheableDnsHttpAgent.getHttpAgent({ maxCachedSessions: 0, diff --git a/server/server.js b/server/server.js index 889e7e89..f2128893 100644 --- a/server/server.js +++ b/server/server.js @@ -1728,6 +1728,7 @@ async function pauseMonitor(userID, monitorID) { if (monitorID in server.monitorList) { server.monitorList[monitorID].stop(); + server.monitorList[monitorID].active = 0; } }