next.js
2e1e5958 - turbo-tasks-backend: fix snapshot coordination races + extract SnapshotCoordinator (#93416)

Commit
11 days ago
turbo-tasks-backend: fix snapshot coordination races + extract SnapshotCoordinator (#93416) Hold a lock while persisting so two snapshots cannot execute concurrently * Currently if `stop` is called while an idle snapshot is running, then snapshotting can race with itself, this can corrupt the use of the `in_progress_operations` parameter since two threads will `fetch_or` with it and wait for the bit to be cleared Abort the process if `panic!` occurs during task spawning * Currently if `try_start_task_execution` panics it ends up hanging a task which can deadlock the process, in this case we have no better option than to just log and abort. * I considered strategies that would 'poison' the task or possibly all of turbo-tasks and this is attractive but i believe fundamentally unsafe, the most likely cause of these panics is something wrong with state tracking in the backend, so exiting is all we can do
Author
Parents
Loading