mirror of
https://github.com/ether/etherpad-lite.git
synced 2026-07-18 00:57:55 +00:00
ueberdb2 6.1.10 rewrote the cache/buffer layer (CacheAndBufferLayer.ts), replacing the constructor's always-on, *referenced* `setInterval` flush timer with a lazily-armed `setTimeout` that is `.unref()`'d and only created when there are dirty keys. On a fresh, empty dirty DB there are no dirty keys, so no flush timer is ever armed and ueberdb2 no longer anchors Node's event loop. In the packaged (.deb/systemd) production boot this exposes a startup window where the loop has no referenced handle and the process exits cleanly (code 0) before `server.listen()` binds the port — so the server never serves /health. Symptom on develop: the Debian-package amd64 smoke test failed on three consecutive pushes (#7966 ueberdb2 6.1.9->6.1.12, then #7965, #7967), with the service logging the version banner then "Deactivated successfully" and the health check on :9001 never connecting. Backend/Docker/downstream-smoke stayed green because they keep the loop alive by other means; only the bare fresh-empty-dirty-DB packaged boot hits the gap. ueberdb2 6.1.12 is the latest published release, so there is no fixed version to roll forward to yet — pin back to the last green release (6.1.9) on both src/ and bin/. Also add a `pull_request` trigger to the Debian-package workflow (scoped to the same production-footprint paths). The smoke step is the only check that catches this "boots then exits before binding" class of regression, but it previously ran only on push to develop — i.e. *after* merge — which is exactly why the Dependabot bump turned develop red instead of being blocked at PR time. The release/apt-publish jobs are tag-guarded, so PRs run the build+smoke job only. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
44 lines
1.5 KiB
JSON
44 lines
1.5 KiB
JSON
{
|
|
"name": "bin",
|
|
"version": "3.3.1",
|
|
"description": "",
|
|
"main": "checkAllPads.js",
|
|
"directories": {
|
|
"doc": "doc"
|
|
},
|
|
"dependencies": {
|
|
"ep_etherpad-lite": "workspace:../src",
|
|
"log4js": "^6.9.1",
|
|
"semver": "^7.8.4",
|
|
"tsx": "^4.22.4",
|
|
"ueberdb2": "6.1.9"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^25.9.3",
|
|
"@types/semver": "^7.7.1",
|
|
"typescript": "^6.0.3"
|
|
},
|
|
"scripts": {
|
|
"makeDocs": "node --import tsx make_docs.ts",
|
|
"checkPad": "node --import tsx checkPad.ts",
|
|
"checkAllPads": "node --import tsx checkAllPads.ts",
|
|
"compactPad": "node --import tsx compactPad.ts",
|
|
"compactAllPads": "node --import tsx compactAllPads.ts",
|
|
"compactStalePads": "node --import tsx compactStalePads.ts",
|
|
"createUserSession": "node --import tsx createUserSession.ts",
|
|
"deletePad": "node --import tsx deletePad.ts",
|
|
"repairPad": "node --import tsx repairPad.ts",
|
|
"release": "node --import tsx release.ts",
|
|
"deleteAllGroupSessions": "node --import tsx deleteAllGroupSessions.ts",
|
|
"importSqlFile": "node --import tsx importSqlFile.ts",
|
|
"migrateDirtyDBtoRealDB": "node --import tsx migrateDirtyDBtoRealDB.ts",
|
|
"rebuildPad": "node --import tsx rebuildPad.ts",
|
|
"stalePlugins": "node --import tsx ./plugins/stalePlugins.ts",
|
|
"checkPlugin": "node --import tsx ./plugins/checkPlugin.ts",
|
|
"plugins": "node --import tsx ./plugins.ts",
|
|
"generateChangelog": "node --import tsx generateReleaseNotes.ts",
|
|
"migrateDB": "node --import tsx migrateDB.ts"
|
|
},
|
|
"author": "",
|
|
"license": "ISC"
|
|
}
|