-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incompatible format of compiled wasm modules between wasmvm 1.2.1 and 1.2.2 #426
Comments
The 1.0.1 and 1.1.2 releases are probably not affected because the buildes (i.e. Rust version compiling libwasmvm) did not change for them. |
I got confirmation from the rkyv chat. It seems to be very likely that the Rust upgrade from 1.65.0 to 1.68.2 changed the (undefined) memory layout of some Rust types, making segfaults during the deserialization of the module the expected behaviour. |
This will be fixed in CosmWasm 1.3 and beyond, making it extremely unlikely to happen again. The fix contains two layers:
|
This issue affects more migration paths than I originally thought.
Footnotes |
wasmvm 1.2.4 invalidates all previous caches to avoid potential issues, no matter from which version you are coming. |
I consider this done by the 1.2.4 patch release as well as work in 1.3 that will improve the situation even more. |
If you upgrade from wasmvm 1.2.{0,1} to wasmvm 1.2.{2,3} please note that most likely the machine format of the compiled Wasm modules has changed. This leads to crashes like the following when the new version is running
To overcome this problem,
~/.noisd/wasm/wasm/cache/
(replace with the location your project uses)You might experience a small slowdown in the beginning since each .wasm code is lazily re-compiled once it is executed.
Thanks a lot to Reece for helping trace that down.
The text was updated successfully, but these errors were encountered: