Skip to content
Commit Detail

Commit b345115

Author
vaibhav <vaibhavsharma@cloudflare.com> 2026-03-20 11:39:54 +0000
Parents
e6dc01a
Tree
3dbf7b0
Prevent unbounded alarm scheduling promise chain in ActorSqlite.

When user code repeatedly moves a Durable Object alarm to a later time
and scheduleRun calls to the alarm manager take longer than local SQLite
commits (common in production), the alarmLaterChain promise chain grew
without bound. This caused alarms to fire at times far in the past and
could block SRS commits for arbitrarily long when a subsequent setAlarm
moved the alarm earlier.
Replace the unbounded chain with a coalescing mechanism: at most one
scheduleRun is in-flight at a time, and rapid intermediate alarm times
are collapsed into a single pending value.

Files changed

3 files changed~3 modified