Server exits with "storage writer lease was not renewed before its safety deadline" under light load
メンテナーはふだん 1 日以内に返信
評価
この issue はまだ評価されていません。
説明
What happened
A self-hosted Chopin server (Postgres storage, HARNESS=remote, running in Docker with restart: unless-stopped) exited on its own and was restarted by Docker:
2026-10-12T00:45:06.381Z chopin: storage writer lease was not renewed before its safety deadline
2026-10-12T00:45:07.642Z chopin: postgres storage is up to date
2026-10-12T00:45:08.628Z chopin · http://0.0.0.0:8787 · … harness: remote … storage: postgres
docker inspect: StartedAt=2026-10-12T00:45:07.42Z, RestartCount=1, ExitCode=0, OOMKilled=false. No other error was logged before the exit.
Effects: every open WebSocket (rooms, /planner-link) closed with 1006 at the same moment. Attached Planner clients reconnected after the restart, but their in-flight turns failed, and attachments were released.
Context
- Server at
main518bd44 (Atomic 0.9.34), on a 16-vCPU VM. The database is an Azure PostgreSQL Flexible Server (zone-redundant HA) on the same VNet. - Load was light: one attached Planner client actively streaming a turn (about 700 KB queued on its socket at the time) and one browser.
- The message comes from the writer-lease watchdog in
apps/server/src/main.ts, which exits when a lease renewal hasn't completed before its safety deadline.
Questions / expected
- What can delay a lease renewal past its deadline under light load? For example, event-loop blocking while serializing large Planner-link frames, a slow or stalled Postgres round-trip, or a renewal request that hangs with no timeout.
- Expected: a transient renewal delay shouldn't take the whole server down when no other writer exists. Or, if exiting is the safe choice, it should log the renewal's last success time, how late it was, and the failing query or error, so the cause can be diagnosed.
- 主要言語
- TypeScript
- スター
- 406
- フォーク
- 24
- 平均マージ
- 13時間 3分
- マージ済み PR(30日)
- 400
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
githubnext/chopin のほかの issue
-
documentation triage/human-response
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
githubnext/chopin#149 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
A stopped workflow stage should show its child stages as stopped too対応中かも @lavaman131 が今日担当しました。 オープン
githubnext/chopin#646 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
Machine menu in the Chat box is cut off at the bottom right once the workspace has documents対応中かも @lavaman131 が今日担当しました。 オープン
githubnext/chopin#645 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 3/5 半日 初心者へのやさしさ 45/100
githubnext/chopin#597 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
githubnext/chopin#596 ·
メンテナーはふだん 1 日以内に返信
githubnext/chopin の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
QuantumNous/new-api#7839 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
-
bug p2 triaged
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
getpaseo/paseo#7071 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
test: make the #3408 Claude OAuth token fixture obviously fake so secret scanners stop flagging itオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
code-yeongyu/senpi#3436 ·
メンテナーはふだん 1 日以内に返信
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
lingdojo/kana-dojo#32505 · コメント 1 件 · リアクション 5 件 ·
メンテナーはふだん 1 日以内に返信