Skip to content

try-runtime 0.8.0 fails on on-runtime-upgrade while 0.7.0 works fine #111

@TomatoAres

Description

@TomatoAres

Description

I'm facing an issue when running the on-runtime-upgrade command with try-runtime. The command works as expected with try-runtime 0.7.0, but it fails with try-runtime 0.8.0.

Environment

Operating System: Ubuntu 24.04 MacOS

Commands and Outputs

try-runtime 0.8.0

try-runtime \
    --runtime bifrost_kusama_runtime.compact.compressed.wasm \
    on-runtime-upgrade --print-storage-diff \
    --blocktime 6000 --disable-idempotency-checks live \
    --uri wss://hk.bifrost-rpc.liebi.com:443/ws
[2025-03-18T08:54:02Z INFO  remote-ext] adding data for hashed prefix: , took 24.15s
[2025-03-18T08:54:02Z INFO  remote-ext] adding data for hashed key: 3a636f6465
[2025-03-18T08:54:02Z INFO  remote-ext] adding data for hashed key: 26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8
[2025-03-18T08:54:02Z INFO  remote-ext] adding data for hashed key: 26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac
[2025-03-18T08:54:02Z INFO  remote-ext] 👩‍👦 scraping child-tree data from 23 top keys
[2025-03-18T08:54:03Z INFO  remote-ext] initialized state externalities with storage root 0xc6e670291ac9c70208bda135227190c399099402cb3007a84ceae6bbf280f7c7 and state_version V0
[2025-03-18T08:54:03Z INFO  try-runtime::cli] Original runtime [Name: RuntimeString::Owned("bifrost")] [Version: 17000] [Code hash: 0x6e49...83b7]
[2025-03-18T08:54:03Z INFO  try-runtime::cli] New runtime      [Name: RuntimeString::Owned("bifrost")] [Version: 18000] [Code hash: 0xb855...a43c]
[2025-03-18T08:54:10Z INFO  try_runtime_core::common::empty_block::production] Producing new empty block at height 8496154
[2025-03-18T08:54:10Z INFO  try_runtime_core::common::empty_block::production] Produced a new block (0x1c53bf5e685cad6f69fcdf361f2774baf9b4ee6e6c7c23483a1d0ed6ce502055)
[2025-03-18T08:54:11Z ERROR runtime] panicked at /root/.cargo/git/checkouts/polkadot-sdk-cff69157b985ed76/de5b874/substrate/frame/executive/src/lib.rs:836:9:
    Storage root must match that calculated.
thread 'main' panicked at cli/main.rs:326:10:
called `Result::unwrap()` on an `Err` value: Input("failed to execute 'Core_execute_block': Execution aborted due to trap: wasm trap: wasm `unreachable` instruction executed\nWASM backtrace:\nerror while executing at wasm backtrace:\n    0: 0x7d610c - bifrost_kusama_runtime.wasm!rust_begin_unwind\n    1: 0x36ee - bifrost_kusama_runtime.wasm!core::panicking::panic_fmt::hd2903ad87c0415c7\n    2: 0xcb095 - bifrost_kusama_runtime.wasm!frame_executive::Executive<System,Block,Context,UnsignedValidator,AllPalletsWithSystem,COnRuntimeUpgrade>::execute_block::h70694f215c6d4b0d\n    3: 0x6e1db9 - bifrost_kusama_runtime.wasm!Core_execute_block")
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Build step 'Execute shell' marked build as failure
Finished: FAILURE

try-runtime 0.7.0

try-runtime-v0.7.0 \
    --runtime bifrost_kusama_runtime.compact.compressed.wasm \
    on-runtime-upgrade --print-storage-diff \
    --disable-idempotency-checks live \
    --uri wss://hk.bifrost-rpc.liebi.com:443/ws
[2025-03-19T04:10:52Z INFO  remote-ext] replacing ws:// in uri with http://: "http://172.19.64.31:29944" (ws is currently unstable for fetching remote storage, for more see https://github.com/paritytech/jsonrpsee/issues/1086)
[2025-03-19T04:10:52Z INFO  remote-ext] since no at is provided, setting it to latest finalized head, 0xe5c0ff19b3369a5b675237a643141e2b77cf13a61d31d3062f744085cb7fdd6f
[2025-03-19T04:10:52Z INFO  remote-ext] since no prefix is filtered, the data for all pallets will be downloaded
[2025-03-19T04:10:52Z INFO  remote-ext] scraping key-pairs from remote at block height 0xe5c0ff19b3369a5b675237a643141e2b77cf13a61d31d3062f744085cb7fdd6f
✅ Found 357363 keys (2.94s)
[00:00:18] ✅ Downloaded key values 19,392.8515/s [=======================================================================================================================================================================================================] 357363/357363 (0s)
✅ Inserted keys into DB (2.76s)
[2025-03-19T04:11:17Z INFO  remote-ext] adding data for hashed prefix: , took 24.73s
[2025-03-19T04:11:17Z INFO  remote-ext] adding data for hashed key: 3a636f6465
[2025-03-19T04:11:17Z INFO  remote-ext] adding data for hashed key: 26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8
[2025-03-19T04:11:17Z INFO  remote-ext] adding data for hashed key: 26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac
[2025-03-19T04:11:17Z INFO  remote-ext] 👩‍👦 scraping child-tree data from 23 top keys
[2025-03-19T04:11:18Z INFO  remote-ext] initialized state externalities with storage root 0x6a2a38ad6dcaec84e9d31ea8a22828e8f0e073e0dfba5dda91cdf18f5d5ffdfb and state_version V0
[2025-03-19T04:11:18Z INFO  try-runtime::cli] Original runtime [Name: RuntimeString::Owned("bifrost")] [Version: 17000] [Code hash: 0x6e49...83b7]
[2025-03-19T04:11:19Z INFO  try-runtime::cli] New runtime      [Name: RuntimeString::Owned("bifrost")] [Version: 18000] [Code hash: 0xd646...472c]
[2025-03-19T04:11:19Z INFO  try-runtime::cli] 🚀 Speed up your workflow by using snapshots instead of live state. See `try-runtime create-snapshot --help`.
[2025-03-19T04:11:19Z INFO  try_runtime_core::common::misc_logging] ------------------------------------------------------------------


[2025-03-19T04:11:19Z INFO  try_runtime_core::common::misc_logging] 🔬 Running TryRuntime_on_runtime_upgrade with checks: PreAndPost


[2025-03-19T04:11:19Z INFO  try_runtime_core::common::misc_logging] ------------------------------------------------------------------


[2025-03-19T04:11:32Z INFO  try_runtime_core::common::misc_logging] ------------------------------------------------------------------------------------------------------


[2025-03-19T04:11:32Z INFO  try_runtime_core::common::misc_logging] 🔬 TryRuntime_on_runtime_upgrade succeeded! Running it again without checks for weight measurements.


[2025-03-19T04:11:32Z INFO  try_runtime_core::common::misc_logging] ------------------------------------------------------------------------------------------------------


[2025-03-19T04:11:32Z INFO  try_runtime_core::commands::on_runtime_upgrade] ℹ Skipping idempotency check
[2025-03-19T04:11:32Z INFO  try-runtime::cli] PoV size (zstd-compressed compact proof): 31.4 KB. For parachains, it's your responsibility to verify that a PoV of this size fits within any relaychain constraints.
[2025-03-19T04:11:32Z INFO  try-runtime::cli] Consumed ref_time: 0.0020081s (0.10% of max 2s)
[2025-03-19T04:11:32Z INFO  try-runtime::cli] ✅ No weight safety issues detected. Please note this does not guarantee a successful runtime upgrade. Always test your runtime upgrade with recent state, and ensure that the weight usage of your migrations will not drastically differ between testing and actual on-chain execution.

Expected Behavior

The on-runtime-upgrade command should work without errors in both try-runtime 0.7.0 and 0.8.0.

Steps to Reproduce

Install try-runtime 0.8.0 and 0.7.0, from github release.
Run the on-runtime-upgrade command with try-runtime 0.8.0 as shown above.
Observe the error.
Run the same command with try-runtime 0.7.0.
Observe that it works without errors.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions