You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(crews): a seat reserved before a restart mid-launch stays on the roster with no thread #376
If the server stops after a Crew launch has reserved its seats but before every seat thread exists, a reserved seat with no thread can stay on the Crew's roster. The live launch drops a never-created seat from the record (CrewLaunchService), but that step only runs during the launch. After a restart, the launch reporter's startup sweep (CrewLaunchReporter.reconcile) still reports the seat as "its thread was never created", but nothing removes the reservation. If the Captain then asks for the same seat with request_crew_member, the leftover reservation can block the name.
I found this by reading the code while closing #346. I haven't reproduced it.
Proposed fix
When the startup sweep reports a seat as never created, drop that seat's reservation the same way the live launch does, so the roster matches what exists and the Captain can request the seat again. Add one test: reserve seats, simulate a restart before one spawns, run the sweep, and expect the seat off the roster and requestable again.
Activity