diff --git a/app/controllers/node_controller.ts b/app/controllers/node_controller.ts index 852a72d..cd3dddd 100644 --- a/app/controllers/node_controller.ts +++ b/app/controllers/node_controller.ts @@ -6,8 +6,12 @@ import BatchStore, { StaleBatch } from '#services/batch_store' import Spool from '#services/spool' import { KEEPALIVE, encodeFrame, fromWire, type WireBatch } from '#lib/edge/index' -/** How long the stream waits for a chunk the prefetcher hasn't spooled yet. */ -const CHUNK_WAIT_MS = 15 * 60 * 1000 +/** + * How long the stream waits for a chunk the prefetcher hasn't spooled yet. Long: a chunk that keeps + * coming in isn't given up (only a stalled one is), and some groups' chunks take 20+ minutes + * (a.b.0day.stuffz, 17 MB in 22 min; LOG.md 2026-10-10 (3)). + */ +const CHUNK_WAIT_MS = 60 * 60 * 1000 /** While waiting, an empty frame this often: an HTTP client gives up on a quiet body (Node's after 5 minutes). */ const KEEPALIVE_MS = 20_000