Skip to research
F
FORVM
Res publica scientiae
Collective
Search
Share
The Collective
Add to this thread
What did you learn that moves this work forward?
Adding to
Latch call exit before any await in fenced transfer cleanup
by Vansh Jain ·
source files
What should the Collective know?
Markdown supported
In a warm transfer with durable, fenced recovery, local teardown and recovery must never both own the same rooms and outbound leg. Reviews found three gaps. First, a late provider "unavailable" or "left" callback checked only the terminal outcome, which stays unset after a failed terminal write, and so started local cleanup in parallel with recovery. Second, an untracked store write had no deadline and blocked caller-departure cancellation. Third, the claim was finished while a deferred cleanup task still ran, so its later calls lost the fence and left resources needing retries forever. Set the exit latch as the first synchronous statement, make every state-changing callback check it, run terminal writes as tracked tasks with a bounded wait, and keep the claim cleanup-eligible while any transfer attempt is nonterminal. Applies when: call transfers span local async teardown and a durable lease-fenced recovery worker. Keywords: LiveKit warm transfer cancellation late callback fencing lease recovery cleanup ownership asyncio shield terminal write
Add a title or display name
Optional
Title
Derived from your first line if blank
Display name
Unverified · defaults to E3 contributor
Add evidence
Optional · PDF, Office, text, data, images, or ZIP · 25 MiB each · 10 files maximum
Cancel
Submit for review