mirror of
https://github.com/ether/etherpad-lite.git
synced 2026-07-17 16:47:05 +00:00
deps: pin ueberdb2 to 6.1.9 (fixes standalone-server startup exit) + run deb smoke on PRs (#7969)
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>
This commit is contained in:
parent
0c0f5a8ec4
commit
a59b310dbf
4 changed files with 27 additions and 9 deletions
18
.github/workflows/deb-package.yml
vendored
18
.github/workflows/deb-package.yml
vendored
|
|
@ -15,6 +15,24 @@ on:
|
|||
- 'src/node/utils/run_cmd.ts'
|
||||
- 'src/static/js/pluginfw/**'
|
||||
- 'settings.json.template'
|
||||
# Also build + smoke-test the package on PRs that touch the production
|
||||
# footprint. The smoke step boots the packaged server and waits for /health,
|
||||
# which is the only check that catches "server starts then exits before
|
||||
# binding the port" startup regressions (e.g. a dependency bump whose change
|
||||
# lets the event loop drain mid-boot). Previously this workflow ran only on
|
||||
# push to develop, so such a regression was caught *after* merge — by which
|
||||
# point develop was already red. Running it pre-merge blocks the PR instead.
|
||||
# The release/apt-publish jobs are tag-guarded, so PRs run the build job only.
|
||||
pull_request:
|
||||
paths:
|
||||
- 'packaging/**'
|
||||
- '.github/workflows/deb-package.yml'
|
||||
- 'src/package.json'
|
||||
- 'pnpm-lock.yaml'
|
||||
- 'src/node/server.ts'
|
||||
- 'src/node/utils/run_cmd.ts'
|
||||
- 'src/static/js/pluginfw/**'
|
||||
- 'settings.json.template'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
ref:
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
"log4js": "^6.9.1",
|
||||
"semver": "^7.8.4",
|
||||
"tsx": "^4.22.4",
|
||||
"ueberdb2": "^6.1.12"
|
||||
"ueberdb2": "6.1.9"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^25.9.3",
|
||||
|
|
|
|||
14
pnpm-lock.yaml
generated
14
pnpm-lock.yaml
generated
|
|
@ -164,8 +164,8 @@ importers:
|
|||
specifier: ^4.22.4
|
||||
version: 4.22.4
|
||||
ueberdb2:
|
||||
specifier: ^6.1.12
|
||||
version: 6.1.12(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@25.9.3))(nano@11.0.5)(pg@8.21.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3))
|
||||
specifier: 6.1.9
|
||||
version: 6.1.9(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@25.9.3))(nano@11.0.5)(pg@8.21.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3))
|
||||
devDependencies:
|
||||
'@types/node':
|
||||
specifier: ^25.9.3
|
||||
|
|
@ -364,8 +364,8 @@ importers:
|
|||
specifier: 4.22.4
|
||||
version: 4.22.4
|
||||
ueberdb2:
|
||||
specifier: ^6.1.12
|
||||
version: 6.1.12(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@25.9.3))(nano@11.0.5)(pg@8.21.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3))
|
||||
specifier: 6.1.9
|
||||
version: 6.1.9(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@25.9.3))(nano@11.0.5)(pg@8.21.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3))
|
||||
underscore:
|
||||
specifier: 1.13.8
|
||||
version: 1.13.8
|
||||
|
|
@ -5400,8 +5400,8 @@ packages:
|
|||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
|
||||
ueberdb2@6.1.12:
|
||||
resolution: {integrity: sha512-LxW4He5ZWhRzSldB105T/z9L7ljPJJeQ2VkM7tAhh0hj2TZ0zz6DItdBwDA5CQPab5QhiJ7BZC1OgkDqNDL53w==}
|
||||
ueberdb2@6.1.9:
|
||||
resolution: {integrity: sha512-AOifNHJT0A9c52eEQqcm77d3/RUZVIvGFN1KFbXEPpfI89fa5c9lS8z7piu6m+CwBgWD+Fq5wAmP7W3LVZ4MwA==}
|
||||
engines: {node: '>=24.0.0'}
|
||||
peerDependencies:
|
||||
'@elastic/elasticsearch': ^9.0.0
|
||||
|
|
@ -11097,7 +11097,7 @@ snapshots:
|
|||
|
||||
typescript@6.0.3: {}
|
||||
|
||||
ueberdb2@6.1.12(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@25.9.3))(nano@11.0.5)(pg@8.21.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)):
|
||||
ueberdb2@6.1.9(@elastic/elasticsearch@9.4.2)(async@3.2.6)(cassandra-driver@4.8.0)(dirty-ts@1.1.8)(mongodb@7.3.0)(mssql@12.5.5(@azure/core-client@1.10.1))(mysql2@3.22.5(@types/node@25.9.3))(nano@11.0.5)(pg@8.21.0)(redis@6.0.0(@opentelemetry/api@1.9.1))(rethinkdb@2.4.2)(rusty-store-kv@1.3.1)(surrealdb@2.0.3(tslib@2.8.1)(typescript@6.0.3)):
|
||||
optionalDependencies:
|
||||
'@elastic/elasticsearch': 9.4.2
|
||||
async: 3.2.6
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@
|
|||
"surrealdb": "^2.0.3",
|
||||
"tinycon": "0.6.8",
|
||||
"tsx": "4.22.4",
|
||||
"ueberdb2": "^6.1.12",
|
||||
"ueberdb2": "6.1.9",
|
||||
"underscore": "1.13.8",
|
||||
"undici": "^8.4.1",
|
||||
"unorm": "1.6.0",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue