Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Server exits with "storage writer lease was not renewed before its safety deadline" under light load

Cerrado
#486 0 comentarios 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 1 día

@lavaman131 ya está trabajando en esto.

Desde el 12/10/2026.

  • #487 de @lavaman131 — abierto

Evaluación

Este issue todavía no se ha evaluado.

Descripción

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 main 518bd44 (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.
Lenguaje dominante
TypeScript
Estrellas
392
Forks
22
Merge medio
16 h 56 min
PR fusionados (30 d)
298

Preparar el entorno

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de githubnext/chopin

Todos los issues de githubnext/chopin

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.