mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-10 02:25:56 +00:00
6b79aa9972
WriteBatchSync waited unboundedly for the ingestion worker's commit. The monitoring pipeline calls it inline from state broadcast, agent ingest, and poll publish, so a metrics disk slow enough to back up the write queue froze the monitor after its first cycle: polls stopped being scheduled, PollStatus.LastSuccess never advanced, and healthy API sources degraded to stale/agent-only while SQLite ground through retention maintenance (107s cleanup, multi-second commits on the reporter's instance). enqueueAndWait now shares a single 2s budget across enqueue and commit. A queue that cannot accept the batch within the budget drops it with a warning, matching enqueueWrite's saturation behavior. A batch that enqueues but has not committed stays queued and is not lost; the caller moves on and a rate-limited warning records the backlog. Healthy disks keep read-your-writes semantics. Refs #1437 Contract-Neutral: behavioral fix: bound metrics store sync write wait (#1437), no public contract delta