Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Missing feature for parachain runtime? #2230

@ntn-x2

Description

@ntn-x2

After upgrading from 0.9.37 to 9.9.38, our parachain runtimes compiled only with the benchmarking flag have started failing.

cargo check -p peregrine-runtime --features runtime-benchmarks

⚡ Found 3 strongly connected components which includes at least one cycle each
cycle(001) ∈ α: DisputeCoordinator ~~{"DisputeDistributionMessage"}~~> DisputeDistribution ~~{"DisputeCoordinatorMessage"}~~>  *
cycle(002) ∈ β: CandidateBacking ~~{"CollatorProtocolMessage"}~~> CollatorProtocol ~~{"CandidateBackingMessage"}~~>  *
cycle(003) ∈ γ: NetworkBridgeRx ~~{"GossipSupportMessage"}~~> GossipSupport ~~{"NetworkBridgeRxMessage"}~~>  *
    Checking polkadot-runtime v0.9.38 (https://github.com/paritytech/polkadot?branch=release-v0.9.38#72309a2b)
error[E0046]: not all trait items implemented, missing: `ReachableDest`
   --> /home/antonio/.cargo/git/checkouts/polkadot-4038f27d5e4ea2e8/72309a2/runtime/polkadot/src/xcm_config.rs:366:1
    |
366 | impl pallet_xcm::Config for Runtime {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `ReachableDest` in implementation
    |
    = help: implement the missing item: `type ReachableDest = Type;`

For more information about this error, try `rustc --explain E0046`.
error: could not compile `polkadot-runtime` due to previous error

The error is generated in the polkadot-runtime crate, which I am not sure how deep inside the dependency tree is, and it seems an issue with the runtime-benchmarks flag not being properly set by one of the crates that our runtime depends on.

On a related note, I was not even able to compile the statemine runtime on its own with just the runtime-benchmarks feature either, but with a different error regarding the new try_success_origin syntax, which gives me the hint that not all feature combinations are working for the cumulus repo.

EDIT: this is the PR to update from 0.9.37 to 0.9.38. If our parachain runtimes are compiled with cargo build -p peregrine-runtime --features runtime-benchmarks, then we have the compilation issue.

EDIT 2: compiling the whole kilt-parachain node with just the runtime-benchmarks feature works, so something in the client side is causing the feature from being correctly enabled by the dependencies.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions