ContextManager::take() appears to have an allocation mismatch for active/on-GPU snapshots.
For active snapshots, take() estimates that zero new GPU pages are needed because snapshot working pages should be transferred directly into the new context. However, take_inner() then unconditionally requires snap.working_pages.len() pre-allocated GPU pages, causing take() to fail for active snapshots that have working pages.
Relevant file:
runtime/src/context/snapshot.rs
ContextManager::take()appears to have an allocation mismatch for active/on-GPU snapshots.For active snapshots,
take()estimates that zero new GPU pages are needed because snapshot working pages should be transferred directly into the new context. However,take_inner()then unconditionally requiressnap.working_pages.len()pre-allocated GPU pages, causingtake()to fail for active snapshots that have working pages.Relevant file:
runtime/src/context/snapshot.rs