fix: handle NULL method in LMF during WASM exception unwinding#156
Merged
jeromelaban merged 1 commit intomainfrom Apr 10, 2026
Merged
fix: handle NULL method in LMF during WASM exception unwinding#156jeromelaban merged 1 commit intomainfrom
jeromelaban merged 1 commit intomainfrom
Conversation
When hot reload applies metadata deltas across multiple generations, the LMF (Last Managed Frame) chain can contain entries with NULL method pointers — caused by partially initialized JIT frames during skeleton type creation or ALC unloading.
WASM is the only architecture that hard-asserts on (*lmf)->method (exceptions-wasm.c:66). x86 returns FALSE gracefully; AMD64/ARM64 don't depend on the method field at all.
- Add patch 0005 to Uno.DotnetRuntime.WebAssembly: skip NULL method LMF entries and return FALSE, matching x86 behavior
- Add WASM runtime test exercising multi-generation hot reload via MetadataUpdater.ApplyUpdate with Roslyn EmitDifference deltas
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When hot reload applies metadata deltas across multiple generations, the LMF (Last Managed Frame) chain can contain entries with NULL method pointers — caused by partially initialized JIT frames during skeleton type creation or ALC unloading.
WASM is the only architecture that hard-asserts on (*lmf)->method (exceptions-wasm.c:66). x86 returns FALSE gracefully; AMD64/ARM64 don't depend on the method field at all.