Skip to content

chore(deps): upgrade wasmtime to 36 - #2226

Merged
rvagg merged 1 commit into
filecoin-project:masterfrom
hanabi1224:hm/bump-wasmtime
Oct 21, 2025
Merged

chore(deps): upgrade wasmtime to 36#2226
rvagg merged 1 commit into
filecoin-project:masterfrom
hanabi1224:hm/bump-wasmtime

Conversation

@hanabi1224

@hanabi1224 hanabi1224 commented Oct 17, 2025

Copy link
Copy Markdown
Contributor

Some tipset validation benchmarks to justify the upgrade: (No significant latency or memory usage change observed)

wasmtime@31+mainnet@5412980

➜  state_compute /usr/bin/time forest-tool state replay-compute --chain mainnet -n 10 mainnet_5412980.forest.car.zst
2025-10-17T12:13:07.486707Z  INFO forest::genesis: Initialized genesis: bafy2bzacecnamqgqmifpluoeldx7zzglxcljo6oja4vrmtj7432rphldpdmm2
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 5s 534ms 74us 940ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 437ms 952us 337ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 442ms 984us 202ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 450ms 459us 620ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 447ms 242us 830ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 448ms 109us 276ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 456ms 388us 499ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 453ms 712us 106ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 454ms 835us 794ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 451ms 521us 693ns.
51.74user 1.60system 0:09.78elapsed 545%CPU (0avgtext+0avgdata 496880maxresident)k
13376inputs+0outputs (59major+260856minor)pagefaults 0swaps

wasmtime@36+mainnet@5412980

➜  state_compute /usr/bin/time forest-tool-wasmtime36 state replay-compute --chain mainnet -n 10 mainnet_5412980.forest.car.zst
2025-10-17T12:14:33.847599Z  INFO forest::genesis: Initialized genesis: bafy2bzacecnamqgqmifpluoeldx7zzglxcljo6oja4vrmtj7432rphldpdmm2
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 5s 397ms 98us 972ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 441ms 709us 762ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 437ms 29us 954ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 439ms 1us 981ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 441ms 364us 850ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 431ms 949us 784ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 436ms 437us 951ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 439ms 877us 749ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 443ms 113us 908ns.
epoch: 5412980, state_root: bafy2bzaceayrf3zvlnwxoe2gp5inorvczqgh6vcngiv2gdhocixpvoebbaj5m, receipt_root: bafy2bzacebc3cz43bb76ehtpfuv4brc4echaaxmn2ecih5cx2o5zptym6zzq4, took 441ms 551us 262ns.
50.93user 1.16system 0:09.46elapsed 550%CPU (0avgtext+0avgdata 482984maxresident)k
15640inputs+0outputs (71major+249620minor)pagefaults 0swaps

wasmtime@31+calibnet@3111900

➜  state_compute /usr/bin/time forest-tool state replay-compute --chain calibnet -n 10 calibnet_3111900.forest.car.zst
2025-10-17T12:16:06.663919Z  INFO forest::genesis: Initialized genesis: bafy2bzacecyaggy24wol5ruvs6qm73gjibs2l2iyhcqmvi7r7a4ph7zx3yqd4
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 3s 737ms 821us 439ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 48ms 443us 993ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 48ms 545us 323ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 46ms 987us 884ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 46ms 655us 560ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 46ms 627us 533ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 46ms 651us 625ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 47ms 495us 406ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 47ms 447us 206ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 47ms 217us 384ns.
25.11user 0.64system 0:04.22elapsed 609%CPU (0avgtext+0avgdata 450140maxresident)k
0inputs+0outputs (0major+155875minor)pagefaults 0swaps

wasmtime@36+calibnet@3111900

➜  state_compute /usr/bin/time forest-tool-wasmtime36 state replay-compute --chain calibnet -n 10 calibnet_3111900.forest.car.zst
2025-10-17T12:16:21.045577Z  INFO forest::genesis: Initialized genesis: bafy2bzacecyaggy24wol5ruvs6qm73gjibs2l2iyhcqmvi7r7a4ph7zx3yqd4
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 3s 823ms 168us 281ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 48ms 635us 761ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 48ms 927us 532ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 48ms 202us 235ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 46ms 945us 355ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 47ms 772us 157ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 47ms 766us 499ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 47ms 158us 492ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 47ms 79us 806ns.
epoch: 3111900, state_root: bafy2bzacearxaxwxpn4szgyb3ekhr5ou6kgclhjwexdbx4grdrli45wi2ksuw, receipt_root: bafy2bzacebx5mqrqqgh7s2unqnscqfcili6mumpybdfdkbgimo2zof3mkh6qe, took 46ms 776us 739ns.
26.88user 0.57system 0:04.32elapsed 634%CPU (0avgtext+0avgdata 432616maxresident)k
3264inputs+0outputs (18major+162641minor)pagefaults 0swaps

Related PR: ChainSafe/forest#6167

@github-project-automation github-project-automation Bot moved this to 📌 Triage in FilOz Oct 17, 2025
@codecov-commenter

codecov-commenter commented Oct 17, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.58%. Comparing base (7ee602b) to head (1f3a96c).
⚠️ Report is 4 commits behind head on master.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #2226   +/-   ##
=======================================
  Coverage   77.58%   77.58%           
=======================================
  Files         147      147           
  Lines       15789    15789           
=======================================
  Hits        12250    12250           
  Misses       3539     3539           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@hanabi1224
hanabi1224 marked this pull request as ready for review October 17, 2025 12:19
@rvagg

rvagg commented Oct 18, 2025

Copy link
Copy Markdown
Member

Also needs a look over fvm/src/engine/mod.rs and the wasmtime CHANGELOG at the same time to (1) check what's changed and whether we have conflicts with our existing settings, and (2) add anything new and ideally set it explicitly. In particular we have to be careful of newer features that add nondeterminism, features that interfere with our gas accounting, or bring in risk features that may cause instability across our deployment environments.

@rvagg

rvagg commented Oct 18, 2025

Copy link
Copy Markdown
Member

Quick scan, this one stands out in v37, see the note in mod.rs about GC:

GC support can now be configured in Config and not only through crate features through Config::gc_support. bytecodealliance/wasmtime#11463

There's some work on the exceptions feature in there too, I'm not sure if that's in config yet. It might not be something we can touch if we don't enable the gc feature anyway. I think it could be something we at least flag, like GC was flagged in mod.rs. We'll want to disable it if it comes up as configurable.

@hanabi1224

Copy link
Copy Markdown
Contributor Author

Hey @rvagg Updating wasmtime to 37 requires more changes like bumping MSRV and fixing a few compilation errors, so this PR uses 36. Please let me know if you prefer going straight to 37 and I will try to fix everything.

@rvagg

rvagg commented Oct 21, 2025

Copy link
Copy Markdown
Member

oh right, I missed that; 36 is fine for now I guess, we should do Rust version as a separate step and it's going to have flow-on consequences to other repos so that's a job in itself

@github-project-automation github-project-automation Bot moved this from 📌 Triage to ✔️ Approved by reviewer in FilOz Oct 21, 2025
@rvagg
rvagg merged commit 71c2f8c into filecoin-project:master Oct 21, 2025
17 checks passed
@github-project-automation github-project-automation Bot moved this from ✔️ Approved by reviewer to 🎉 Done in FilOz Oct 21, 2025
@hanabi1224
hanabi1224 deleted the hm/bump-wasmtime branch October 21, 2025 10:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🎉 Done

Development

Successfully merging this pull request may close these issues.

3 participants