From 90dc42491ab0edf37c142409d475cb90b05187f9 Mon Sep 17 00:00:00 2001 From: Alexandru Gheorghe Date: Thu, 12 Jun 2025 13:00:45 +0300 Subject: [PATCH 01/14] extend overseer to send priority messages The new loging is used for sending messages on the grandpa call path when we call dispute-coordinator and approval-voting in finality_target_with_longest_chain to make sure we don't block unnecessarily. Part of: https://github.com/paritytech/polkadot-sdk/issues/8830 Signed-off-by: Alexandru Gheorghe --- Cargo.lock | 9 ++--- Cargo.toml | 4 +-- cumulus/client/collator/src/lib.rs | 34 +++++++++++++++---- .../consensus/aura/src/collators/lookahead.rs | 2 ++ .../collators/slot_based/collation_task.rs | 3 +- cumulus/client/pov-recovery/src/lib.rs | 4 +-- cumulus/test/service/src/lib.rs | 3 +- .../core/approval-voting-parallel/src/lib.rs | 2 +- .../node/core/parachains-inherent/src/lib.rs | 1 + polkadot/node/overseer/src/lib.rs | 27 +++++++++++---- .../node/service/src/relay_chain_selection.rs | 30 +++++++++++++--- polkadot/node/test/service/src/lib.rs | 14 ++++++-- .../undying/collator/src/lib.rs | 3 +- .../undying/collator/src/main.rs | 17 ++++++++-- 14 files changed, 115 insertions(+), 38 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3b65e8cb4d64..c8f42f072043 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11138,8 +11138,7 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orchestra" version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f6bbacc8c189a3f2e45e0fd0436e5d97f194db888e721bdbc3973e7dbed4c2" +source = "git+https://github.com/paritytech/orchestra?branch=alexggh/router_priority_messages#282d82597a70cfd9712c503b4c26a2e6d8cfd5a0" dependencies = [ "async-trait", "dyn-clonable", @@ -11155,8 +11154,7 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7b1d40dd8f367db3c65bec8d3dd47d4a604ee8874480738f93191bddab4e0e0" +source = "git+https://github.com/paritytech/orchestra?branch=alexggh/router_priority_messages#282d82597a70cfd9712c503b4c26a2e6d8cfd5a0" dependencies = [ "expander", "indexmap 2.9.0", @@ -17417,8 +17415,7 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" +source = "git+https://github.com/paritytech/orchestra?branch=alexggh/router_priority_messages#282d82597a70cfd9712c503b4c26a2e6d8cfd5a0" dependencies = [ "coarsetime", "crossbeam-queue", diff --git a/Cargo.toml b/Cargo.toml index 3b8d5374be6e..86f33bf7df28 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -898,7 +898,7 @@ memory-db = { version = "0.33.0", default-features = false } merkleized-metadata = { version = "0.5.0" } merlin = { version = "3.0", default-features = false } messages-relay = { path = "bridges/relays/messages" } -metered = { version = "0.6.1", default-features = false, package = "prioritized-metered-channel" } +metered = { git = "https://github.com/paritytech/orchestra", branch = "alexggh/router_priority_messages", default-features = false, package = "prioritized-metered-channel" } milagro-bls = { version = "1.5.4", default-features = false, package = "snowbridge-milagro-bls" } minimal-template-node = { path = "templates/minimal/node" } minimal-template-runtime = { path = "templates/minimal/runtime" } @@ -926,7 +926,7 @@ num-rational = { version = "0.4.1" } num-traits = { version = "0.2.17", default-features = false } num_cpus = { version = "1.13.1" } once_cell = { version = "1.21.3" } -orchestra = { version = "0.4.0", default-features = false } +orchestra = { git = "https://github.com/paritytech/orchestra", branch = "alexggh/router_priority_messages", default-features = false } pallet-alliance = { path = "substrate/frame/alliance", default-features = false } pallet-asset-conversion = { path = "substrate/frame/asset-conversion", default-features = false } pallet-asset-conversion-ops = { path = "substrate/frame/asset-conversion/ops", default-features = false } diff --git a/cumulus/client/collator/src/lib.rs b/cumulus/client/collator/src/lib.rs index 9cd08bb06c3a..090fd2a4640e 100644 --- a/cumulus/client/collator/src/lib.rs +++ b/cumulus/client/collator/src/lib.rs @@ -29,7 +29,7 @@ use sp_runtime::traits::{Block as BlockT, Header as HeaderT}; use cumulus_client_consensus_common::ParachainConsensus; use polkadot_node_primitives::{CollationGenerationConfig, CollationResult, MaybeCompressedPoV}; use polkadot_node_subsystem::messages::{CollationGenerationMessage, CollatorProtocolMessage}; -use polkadot_overseer::Handle as OverseerHandle; +use polkadot_overseer::{Handle as OverseerHandle, PriorityLevel}; use polkadot_primitives::{CollatorPair, Id as ParaId}; use codec::Decode; @@ -152,7 +152,7 @@ pub mod relay_chain_driven { }; use polkadot_node_primitives::{CollationGenerationConfig, CollationResult}; use polkadot_node_subsystem::messages::{CollationGenerationMessage, CollatorProtocolMessage}; - use polkadot_overseer::Handle as OverseerHandle; + use polkadot_overseer::{Handle as OverseerHandle, PriorityLevel}; use polkadot_primitives::{CollatorPair, Id as ParaId}; use cumulus_primitives_core::{relay_chain::Hash as PHash, PersistedValidationData}; @@ -218,11 +218,19 @@ pub mod relay_chain_driven { }; overseer_handle - .send_msg(CollationGenerationMessage::Initialize(config), "StartCollator") + .send_msg( + CollationGenerationMessage::Initialize(config), + "StartCollator", + PriorityLevel::Normal, + ) .await; overseer_handle - .send_msg(CollatorProtocolMessage::CollateOn(para_id), "StartCollator") + .send_msg( + CollatorProtocolMessage::CollateOn(para_id), + "StartCollator", + PriorityLevel::Normal, + ) .await; stream_rx @@ -243,16 +251,28 @@ pub async fn initialize_collator_subsystems( if reinitialize { overseer_handle - .send_msg(CollationGenerationMessage::Reinitialize(config), "StartCollator") + .send_msg( + CollationGenerationMessage::Reinitialize(config), + "StartCollator", + PriorityLevel::Normal, + ) .await; } else { overseer_handle - .send_msg(CollationGenerationMessage::Initialize(config), "StartCollator") + .send_msg( + CollationGenerationMessage::Initialize(config), + "StartCollator", + PriorityLevel::Normal, + ) .await; } overseer_handle - .send_msg(CollatorProtocolMessage::CollateOn(para_id), "StartCollator") + .send_msg( + CollatorProtocolMessage::CollateOn(para_id), + "StartCollator", + PriorityLevel::Normal, + ) .await; } diff --git a/cumulus/client/consensus/aura/src/collators/lookahead.rs b/cumulus/client/consensus/aura/src/collators/lookahead.rs index 5f1a9eaa579d..bf6786a078d2 100644 --- a/cumulus/client/consensus/aura/src/collators/lookahead.rs +++ b/cumulus/client/consensus/aura/src/collators/lookahead.rs @@ -39,6 +39,7 @@ use cumulus_client_consensus_proposer::ProposerInterface; use cumulus_primitives_aura::AuraUnincludedSegmentApi; use cumulus_primitives_core::{ClaimQueueOffset, CollectCollationInfo, PersistedValidationData}; use cumulus_relay_chain_interface::RelayChainInterface; +use polkadot_overseer::PriorityLevel; use polkadot_node_primitives::SubmitCollationParams; use polkadot_node_subsystem::messages::CollationGenerationMessage; @@ -444,6 +445,7 @@ where }, ), "SubmitCollation", + PriorityLevel::Normal, ) .await; diff --git a/cumulus/client/consensus/aura/src/collators/slot_based/collation_task.rs b/cumulus/client/consensus/aura/src/collators/slot_based/collation_task.rs index 0414ebf2e118..ceeaa8089af2 100644 --- a/cumulus/client/consensus/aura/src/collators/slot_based/collation_task.rs +++ b/cumulus/client/consensus/aura/src/collators/slot_based/collation_task.rs @@ -23,7 +23,7 @@ use cumulus_relay_chain_interface::RelayChainInterface; use polkadot_node_primitives::{MaybeCompressedPoV, SubmitCollationParams}; use polkadot_node_subsystem::messages::CollationGenerationMessage; -use polkadot_overseer::Handle as OverseerHandle; +use polkadot_overseer::{Handle as OverseerHandle, PriorityLevel}; use polkadot_primitives::{CollatorPair, Id as ParaId}; use cumulus_primitives_core::relay_chain::BlockId; @@ -183,6 +183,7 @@ async fn handle_collation_message( // The message the approval voting subsystem would've handled. ApprovalVotingParallelMessage::ApprovedAncestor(_, _,_) | ApprovalVotingParallelMessage::GetApprovalSignaturesForCandidate(_, _) => { - to_approval_voting_worker.send_message( + to_approval_voting_worker.send_message_with_priority::( msg.try_into().expect( "Message is one of ApprovedAncestor, GetApprovalSignaturesForCandidate and that can be safely converted to ApprovalVotingMessage; qed" diff --git a/polkadot/node/core/parachains-inherent/src/lib.rs b/polkadot/node/core/parachains-inherent/src/lib.rs index 5f3092f6a881..a75afa690242 100644 --- a/polkadot/node/core/parachains-inherent/src/lib.rs +++ b/polkadot/node/core/parachains-inherent/src/lib.rs @@ -79,6 +79,7 @@ impl> ParachainsInherentDataProvider { .send_msg( ProvisionerMessage::RequestInherentData(parent, sender), std::any::type_name::(), + polkadot_overseer::PriorityLevel::Normal, ) .await; diff --git a/polkadot/node/overseer/src/lib.rs b/polkadot/node/overseer/src/lib.rs index 92989e2b520e..26f5422cfe8a 100644 --- a/polkadot/node/overseer/src/lib.rs +++ b/polkadot/node/overseer/src/lib.rs @@ -191,14 +191,20 @@ impl Handle { } /// Send some message to one of the `Subsystem`s. - pub async fn send_msg(&mut self, msg: impl Into, origin: &'static str) { - self.send_and_log_error(Event::MsgToSubsystem { msg: msg.into(), origin }).await + pub async fn send_msg( + &mut self, + msg: impl Into, + origin: &'static str, + priority: PriorityLevel, + ) { + self.send_and_log_error(Event::MsgToSubsystem { msg: msg.into(), origin, priority }) + .await } /// Send a message not providing an origin. #[inline(always)] - pub async fn send_msg_anon(&mut self, msg: impl Into) { - self.send_msg(msg, "").await + pub async fn send_msg_anon(&mut self, msg: impl Into, priority: PriorityLevel) { + self.send_msg(msg, "", priority).await } /// Inform the `Overseer` that some block was finalized. @@ -296,6 +302,8 @@ pub enum Event { msg: AllMessages, /// The originating subsystem name. origin: &'static str, + /// The priority of the message. + priority: PriorityLevel, }, /// A request from the outer world. ExternalRequest(ExternalRequest), @@ -764,8 +772,15 @@ where select! { msg = self.events_rx.select_next_some() => { match msg { - Event::MsgToSubsystem { msg, origin } => { - self.route_message(msg.into(), origin).await?; + Event::MsgToSubsystem { msg, origin, priority } => { + match priority { + PriorityLevel::Normal => { + self.route_message::(msg.into(), origin).await?; + }, + PriorityLevel::High => { + self.route_message::(msg.into(), origin).await?; + }, + } self.metrics.on_message_relayed(); } Event::Stop => { diff --git a/polkadot/node/service/src/relay_chain_selection.rs b/polkadot/node/service/src/relay_chain_selection.rs index e48874f01ca6..fcb67de0b762 100644 --- a/polkadot/node/service/src/relay_chain_selection.rs +++ b/polkadot/node/service/src/relay_chain_selection.rs @@ -43,7 +43,7 @@ use polkadot_node_subsystem::messages::{ ChainSelectionMessage, DisputeCoordinatorMessage, HighestApprovedAncestorBlock, }; use polkadot_node_subsystem_util::metrics::{self, prometheus}; -use polkadot_overseer::{AllMessages, Handle}; +use polkadot_overseer::{AllMessages, Handle, PriorityLevel}; use polkadot_primitives::{Block as PolkadotBlock, BlockNumber, Hash, Header as PolkadotHeader}; use sp_consensus::{Error as ConsensusError, SelectChain}; use std::sync::Arc; @@ -322,13 +322,23 @@ enum Error { /// Required for testing purposes. #[async_trait::async_trait] pub trait OverseerHandleT: Clone + Send + Sync { - async fn send_msg>(&mut self, msg: M, origin: &'static str); + async fn send_msg>( + &mut self, + msg: M, + origin: &'static str, + priority: PriorityLevel, + ); } #[async_trait::async_trait] impl OverseerHandleT for Handle { - async fn send_msg>(&mut self, msg: M, origin: &'static str) { - Handle::send_msg(self, msg, origin).await + async fn send_msg>( + &mut self, + msg: M, + origin: &'static str, + priority: PriorityLevel, + ) { + Handle::send_msg(self, msg, origin, priority).await } } @@ -344,7 +354,11 @@ where self.overseer .clone() - .send_msg(ChainSelectionMessage::Leaves(tx), std::any::type_name::()) + .send_msg( + ChainSelectionMessage::Leaves(tx), + std::any::type_name::(), + PriorityLevel::Normal, + ) .await; let leaves = rx @@ -395,6 +409,7 @@ where .send_msg( ChainSelectionMessage::BestLeafContaining(target_hash, tx), std::any::type_name::(), + PriorityLevel::Normal, ) .await; @@ -468,6 +483,7 @@ where tx, ), std::any::type_name::(), + PriorityLevel::High, ) .await; } else { @@ -475,6 +491,7 @@ where .send_msg( ApprovalVotingMessage::ApprovedAncestor(subchain_head, target_number, tx), std::any::type_name::(), + PriorityLevel::High, ) .await; } @@ -506,6 +523,7 @@ where .send_msg( ApprovalVotingParallelMessage::ApprovalCheckingLagUpdate(lag), std::any::type_name::(), + PriorityLevel::Normal, ) .await; } else { @@ -513,6 +531,7 @@ where .send_msg( ApprovalDistributionMessage::ApprovalCheckingLagUpdate(lag), std::any::type_name::(), + PriorityLevel::Normal, ) .await; } @@ -549,6 +568,7 @@ where tx, }, std::any::type_name::(), + PriorityLevel::High, ) .await; diff --git a/polkadot/node/test/service/src/lib.rs b/polkadot/node/test/service/src/lib.rs index e6509983c558..5a70439c9686 100644 --- a/polkadot/node/test/service/src/lib.rs +++ b/polkadot/node/test/service/src/lib.rs @@ -24,7 +24,7 @@ pub use chain_spec::*; use futures::{future::Future, stream::StreamExt}; use polkadot_node_primitives::{CollationGenerationConfig, CollatorFn}; use polkadot_node_subsystem::messages::{CollationGenerationMessage, CollatorProtocolMessage}; -use polkadot_overseer::Handle; +use polkadot_overseer::{Handle, PriorityLevel}; use polkadot_primitives::{Balance, CollatorPair, HeadData, Id as ParaId, ValidationCode}; use polkadot_runtime_common::BlockHashCount; use polkadot_runtime_parachains::paras::{ParaGenesisArgs, ParaKind}; @@ -428,11 +428,19 @@ impl PolkadotTestNode { CollationGenerationConfig { key: collator_key, collator: Some(collator), para_id }; self.overseer_handle - .send_msg(CollationGenerationMessage::Initialize(config), "Collator") + .send_msg( + CollationGenerationMessage::Initialize(config), + "Collator", + PriorityLevel::Normal, + ) .await; self.overseer_handle - .send_msg(CollatorProtocolMessage::CollateOn(para_id), "Collator") + .send_msg( + CollatorProtocolMessage::CollateOn(para_id), + "Collator", + PriorityLevel::Normal, + ) .await; } } diff --git a/polkadot/parachain/test-parachains/undying/collator/src/lib.rs b/polkadot/parachain/test-parachains/undying/collator/src/lib.rs index 9720220222bb..c8da38da2513 100644 --- a/polkadot/parachain/test-parachains/undying/collator/src/lib.rs +++ b/polkadot/parachain/test-parachains/undying/collator/src/lib.rs @@ -24,7 +24,7 @@ use polkadot_node_primitives::{ maybe_compress_pov, AvailableData, Collation, CollationResult, CollationSecondedSignal, CollatorFn, MaybeCompressedPoV, PoV, Statement, UpwardMessages, }; -use polkadot_node_subsystem::messages::CollatorProtocolMessage; +use polkadot_node_subsystem::{messages::CollatorProtocolMessage, PriorityLevel}; use polkadot_primitives::{ vstaging::{ CandidateDescriptorV2, CandidateReceiptV2, ClaimQueueOffset, DEFAULT_CLAIM_QUEUE_OFFSET, @@ -644,6 +644,7 @@ impl Collator { core_index: *core_index, }, "Collator", + PriorityLevel::Normal, ) .await; } diff --git a/polkadot/parachain/test-parachains/undying/collator/src/main.rs b/polkadot/parachain/test-parachains/undying/collator/src/main.rs index 8ab083cccfe4..3fb847b3d609 100644 --- a/polkadot/parachain/test-parachains/undying/collator/src/main.rs +++ b/polkadot/parachain/test-parachains/undying/collator/src/main.rs @@ -18,7 +18,10 @@ use polkadot_cli::{Error, Result}; use polkadot_node_primitives::CollationGenerationConfig; -use polkadot_node_subsystem::messages::{CollationGenerationMessage, CollatorProtocolMessage}; +use polkadot_node_subsystem::{ + messages::{CollationGenerationMessage, CollatorProtocolMessage}, + PriorityLevel, +}; use polkadot_primitives::Id as ParaId; use sc_cli::{Error as SubstrateCliError, SubstrateCli}; use sp_core::hexdisplay::HexDisplay; @@ -145,11 +148,19 @@ fn main() -> Result<()> { para_id, }; overseer_handle - .send_msg(CollationGenerationMessage::Initialize(config), "Collator") + .send_msg( + CollationGenerationMessage::Initialize(config), + "Collator", + PriorityLevel::Normal, + ) .await; overseer_handle - .send_msg(CollatorProtocolMessage::CollateOn(para_id), "Collator") + .send_msg( + CollatorProtocolMessage::CollateOn(para_id), + "Collator", + PriorityLevel::Normal, + ) .await; // If the collator is configured to behave maliciously, simulate the specified From 4e84dadcc56ba9319d0477f5c588266fc01ab793 Mon Sep 17 00:00:00 2001 From: Alexandru Gheorghe Date: Thu, 12 Jun 2025 15:51:56 +0300 Subject: [PATCH 02/14] make changes backwards compatible Signed-off-by: Alexandru Gheorghe --- Cargo.lock | 6 +-- cumulus/client/collator/src/lib.rs | 34 ++++----------- .../consensus/aura/src/collators/lookahead.rs | 2 - .../collators/slot_based/collation_task.rs | 3 +- cumulus/client/pov-recovery/src/lib.rs | 4 +- cumulus/test/service/src/lib.rs | 3 +- .../node/core/parachains-inherent/src/lib.rs | 1 - polkadot/node/overseer/src/lib.rs | 17 +++++--- .../node/service/src/relay_chain_selection.rs | 41 +++++++++++-------- polkadot/node/test/service/src/lib.rs | 14 ++----- .../undying/collator/src/lib.rs | 3 +- .../undying/collator/src/main.rs | 17 ++------ 12 files changed, 56 insertions(+), 89 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c8f42f072043..0415be929b02 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11138,7 +11138,7 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orchestra" version = "0.4.0" -source = "git+https://github.com/paritytech/orchestra?branch=alexggh/router_priority_messages#282d82597a70cfd9712c503b4c26a2e6d8cfd5a0" +source = "git+https://github.com/paritytech/orchestra?branch=alexggh/router_priority_messages#b2b04a841fd0ef58f364b0fd1d2bd6e7a38b945d" dependencies = [ "async-trait", "dyn-clonable", @@ -11154,7 +11154,7 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" version = "0.4.0" -source = "git+https://github.com/paritytech/orchestra?branch=alexggh/router_priority_messages#282d82597a70cfd9712c503b4c26a2e6d8cfd5a0" +source = "git+https://github.com/paritytech/orchestra?branch=alexggh/router_priority_messages#b2b04a841fd0ef58f364b0fd1d2bd6e7a38b945d" dependencies = [ "expander", "indexmap 2.9.0", @@ -17415,7 +17415,7 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" version = "0.6.1" -source = "git+https://github.com/paritytech/orchestra?branch=alexggh/router_priority_messages#282d82597a70cfd9712c503b4c26a2e6d8cfd5a0" +source = "git+https://github.com/paritytech/orchestra?branch=alexggh/router_priority_messages#b2b04a841fd0ef58f364b0fd1d2bd6e7a38b945d" dependencies = [ "coarsetime", "crossbeam-queue", diff --git a/cumulus/client/collator/src/lib.rs b/cumulus/client/collator/src/lib.rs index 090fd2a4640e..9cd08bb06c3a 100644 --- a/cumulus/client/collator/src/lib.rs +++ b/cumulus/client/collator/src/lib.rs @@ -29,7 +29,7 @@ use sp_runtime::traits::{Block as BlockT, Header as HeaderT}; use cumulus_client_consensus_common::ParachainConsensus; use polkadot_node_primitives::{CollationGenerationConfig, CollationResult, MaybeCompressedPoV}; use polkadot_node_subsystem::messages::{CollationGenerationMessage, CollatorProtocolMessage}; -use polkadot_overseer::{Handle as OverseerHandle, PriorityLevel}; +use polkadot_overseer::Handle as OverseerHandle; use polkadot_primitives::{CollatorPair, Id as ParaId}; use codec::Decode; @@ -152,7 +152,7 @@ pub mod relay_chain_driven { }; use polkadot_node_primitives::{CollationGenerationConfig, CollationResult}; use polkadot_node_subsystem::messages::{CollationGenerationMessage, CollatorProtocolMessage}; - use polkadot_overseer::{Handle as OverseerHandle, PriorityLevel}; + use polkadot_overseer::Handle as OverseerHandle; use polkadot_primitives::{CollatorPair, Id as ParaId}; use cumulus_primitives_core::{relay_chain::Hash as PHash, PersistedValidationData}; @@ -218,19 +218,11 @@ pub mod relay_chain_driven { }; overseer_handle - .send_msg( - CollationGenerationMessage::Initialize(config), - "StartCollator", - PriorityLevel::Normal, - ) + .send_msg(CollationGenerationMessage::Initialize(config), "StartCollator") .await; overseer_handle - .send_msg( - CollatorProtocolMessage::CollateOn(para_id), - "StartCollator", - PriorityLevel::Normal, - ) + .send_msg(CollatorProtocolMessage::CollateOn(para_id), "StartCollator") .await; stream_rx @@ -251,28 +243,16 @@ pub async fn initialize_collator_subsystems( if reinitialize { overseer_handle - .send_msg( - CollationGenerationMessage::Reinitialize(config), - "StartCollator", - PriorityLevel::Normal, - ) + .send_msg(CollationGenerationMessage::Reinitialize(config), "StartCollator") .await; } else { overseer_handle - .send_msg( - CollationGenerationMessage::Initialize(config), - "StartCollator", - PriorityLevel::Normal, - ) + .send_msg(CollationGenerationMessage::Initialize(config), "StartCollator") .await; } overseer_handle - .send_msg( - CollatorProtocolMessage::CollateOn(para_id), - "StartCollator", - PriorityLevel::Normal, - ) + .send_msg(CollatorProtocolMessage::CollateOn(para_id), "StartCollator") .await; } diff --git a/cumulus/client/consensus/aura/src/collators/lookahead.rs b/cumulus/client/consensus/aura/src/collators/lookahead.rs index bf6786a078d2..5f1a9eaa579d 100644 --- a/cumulus/client/consensus/aura/src/collators/lookahead.rs +++ b/cumulus/client/consensus/aura/src/collators/lookahead.rs @@ -39,7 +39,6 @@ use cumulus_client_consensus_proposer::ProposerInterface; use cumulus_primitives_aura::AuraUnincludedSegmentApi; use cumulus_primitives_core::{ClaimQueueOffset, CollectCollationInfo, PersistedValidationData}; use cumulus_relay_chain_interface::RelayChainInterface; -use polkadot_overseer::PriorityLevel; use polkadot_node_primitives::SubmitCollationParams; use polkadot_node_subsystem::messages::CollationGenerationMessage; @@ -445,7 +444,6 @@ where }, ), "SubmitCollation", - PriorityLevel::Normal, ) .await; diff --git a/cumulus/client/consensus/aura/src/collators/slot_based/collation_task.rs b/cumulus/client/consensus/aura/src/collators/slot_based/collation_task.rs index ceeaa8089af2..0414ebf2e118 100644 --- a/cumulus/client/consensus/aura/src/collators/slot_based/collation_task.rs +++ b/cumulus/client/consensus/aura/src/collators/slot_based/collation_task.rs @@ -23,7 +23,7 @@ use cumulus_relay_chain_interface::RelayChainInterface; use polkadot_node_primitives::{MaybeCompressedPoV, SubmitCollationParams}; use polkadot_node_subsystem::messages::CollationGenerationMessage; -use polkadot_overseer::{Handle as OverseerHandle, PriorityLevel}; +use polkadot_overseer::Handle as OverseerHandle; use polkadot_primitives::{CollatorPair, Id as ParaId}; use cumulus_primitives_core::relay_chain::BlockId; @@ -183,7 +183,6 @@ async fn handle_collation_message> ParachainsInherentDataProvider { .send_msg( ProvisionerMessage::RequestInherentData(parent, sender), std::any::type_name::(), - polkadot_overseer::PriorityLevel::Normal, ) .await; diff --git a/polkadot/node/overseer/src/lib.rs b/polkadot/node/overseer/src/lib.rs index 26f5422cfe8a..28a201f102c1 100644 --- a/polkadot/node/overseer/src/lib.rs +++ b/polkadot/node/overseer/src/lib.rs @@ -190,8 +190,13 @@ impl Handle { self.send_and_log_error(Event::BlockImported(block)).await } - /// Send some message to one of the `Subsystem`s. - pub async fn send_msg( + /// Send some message with normal priority to one of the `Subsystem`s. + pub async fn send_msg(&mut self, msg: impl Into, origin: &'static str) { + self.send_msg_with_priority(msg, origin, PriorityLevel::Normal).await + } + + /// Send some message with the specified priority to one of the `Subsystem`s. + pub async fn send_msg_with_priority( &mut self, msg: impl Into, origin: &'static str, @@ -203,8 +208,8 @@ impl Handle { /// Send a message not providing an origin. #[inline(always)] - pub async fn send_msg_anon(&mut self, msg: impl Into, priority: PriorityLevel) { - self.send_msg(msg, "", priority).await + pub async fn send_msg_anon(&mut self, msg: impl Into) { + self.send_msg(msg, "").await } /// Inform the `Overseer` that some block was finalized. @@ -775,10 +780,10 @@ where Event::MsgToSubsystem { msg, origin, priority } => { match priority { PriorityLevel::Normal => { - self.route_message::(msg.into(), origin).await?; + self.route_message(msg.into(), origin).await?; }, PriorityLevel::High => { - self.route_message::(msg.into(), origin).await?; + self.route_message_with_priority::(msg.into(), origin).await?; }, } self.metrics.on_message_relayed(); diff --git a/polkadot/node/service/src/relay_chain_selection.rs b/polkadot/node/service/src/relay_chain_selection.rs index fcb67de0b762..eb547719e9d4 100644 --- a/polkadot/node/service/src/relay_chain_selection.rs +++ b/polkadot/node/service/src/relay_chain_selection.rs @@ -322,7 +322,13 @@ enum Error { /// Required for testing purposes. #[async_trait::async_trait] pub trait OverseerHandleT: Clone + Send + Sync { - async fn send_msg>( + async fn send_msg>(&mut self, msg: M, origin: &'static str); +} + +/// Trait for the overseer handle that allows sending messages with the specified priority level. +#[async_trait::async_trait] +pub trait OverseerHandleWithPriorityT: Clone + Send + Sync { + async fn send_msg_with_priority>( &mut self, msg: M, origin: &'static str, @@ -332,20 +338,27 @@ pub trait OverseerHandleT: Clone + Send + Sync { #[async_trait::async_trait] impl OverseerHandleT for Handle { - async fn send_msg>( + async fn send_msg>(&mut self, msg: M, origin: &'static str) { + Handle::send_msg(self, msg, origin).await + } +} + +#[async_trait::async_trait] +impl OverseerHandleWithPriorityT for Handle { + async fn send_msg_with_priority>( &mut self, msg: M, origin: &'static str, priority: PriorityLevel, ) { - Handle::send_msg(self, msg, origin, priority).await + Handle::send_msg_with_priority(self, msg, origin, priority).await } } impl SelectRelayChainInner where B: HeaderProviderProvider, - OH: OverseerHandleT + 'static, + OH: OverseerHandleT + OverseerHandleWithPriorityT + 'static, { /// Get all leaves of the chain, i.e. block hashes that are suitable to /// build upon and have no suitable children. @@ -354,11 +367,7 @@ where self.overseer .clone() - .send_msg( - ChainSelectionMessage::Leaves(tx), - std::any::type_name::(), - PriorityLevel::Normal, - ) + .send_msg(ChainSelectionMessage::Leaves(tx), std::any::type_name::()) .await; let leaves = rx @@ -409,7 +418,6 @@ where .send_msg( ChainSelectionMessage::BestLeafContaining(target_hash, tx), std::any::type_name::(), - PriorityLevel::Normal, ) .await; @@ -483,12 +491,11 @@ where tx, ), std::any::type_name::(), - PriorityLevel::High, ) .await; } else { overseer - .send_msg( + .send_msg_with_priority( ApprovalVotingMessage::ApprovedAncestor(subchain_head, target_number, tx), std::any::type_name::(), PriorityLevel::High, @@ -520,18 +527,18 @@ where let lag_update_task = async move { if approval_voting_parallel_enabled { overseer_handle - .send_msg( + .send_msg_with_priority( ApprovalVotingParallelMessage::ApprovalCheckingLagUpdate(lag), std::any::type_name::(), - PriorityLevel::Normal, + PriorityLevel::High, ) .await; } else { overseer_handle - .send_msg( + .send_msg_with_priority( ApprovalDistributionMessage::ApprovalCheckingLagUpdate(lag), std::any::type_name::(), - PriorityLevel::Normal, + PriorityLevel::High, ) .await; } @@ -561,7 +568,7 @@ where // 3. Constrain according to disputes: let (tx, rx) = oneshot::channel(); overseer - .send_msg( + .send_msg_with_priority( DisputeCoordinatorMessage::DetermineUndisputedChain { base: (target_number, target_hash), block_descriptions: subchain_block_descriptions, diff --git a/polkadot/node/test/service/src/lib.rs b/polkadot/node/test/service/src/lib.rs index 5a70439c9686..e6509983c558 100644 --- a/polkadot/node/test/service/src/lib.rs +++ b/polkadot/node/test/service/src/lib.rs @@ -24,7 +24,7 @@ pub use chain_spec::*; use futures::{future::Future, stream::StreamExt}; use polkadot_node_primitives::{CollationGenerationConfig, CollatorFn}; use polkadot_node_subsystem::messages::{CollationGenerationMessage, CollatorProtocolMessage}; -use polkadot_overseer::{Handle, PriorityLevel}; +use polkadot_overseer::Handle; use polkadot_primitives::{Balance, CollatorPair, HeadData, Id as ParaId, ValidationCode}; use polkadot_runtime_common::BlockHashCount; use polkadot_runtime_parachains::paras::{ParaGenesisArgs, ParaKind}; @@ -428,19 +428,11 @@ impl PolkadotTestNode { CollationGenerationConfig { key: collator_key, collator: Some(collator), para_id }; self.overseer_handle - .send_msg( - CollationGenerationMessage::Initialize(config), - "Collator", - PriorityLevel::Normal, - ) + .send_msg(CollationGenerationMessage::Initialize(config), "Collator") .await; self.overseer_handle - .send_msg( - CollatorProtocolMessage::CollateOn(para_id), - "Collator", - PriorityLevel::Normal, - ) + .send_msg(CollatorProtocolMessage::CollateOn(para_id), "Collator") .await; } } diff --git a/polkadot/parachain/test-parachains/undying/collator/src/lib.rs b/polkadot/parachain/test-parachains/undying/collator/src/lib.rs index c8da38da2513..9720220222bb 100644 --- a/polkadot/parachain/test-parachains/undying/collator/src/lib.rs +++ b/polkadot/parachain/test-parachains/undying/collator/src/lib.rs @@ -24,7 +24,7 @@ use polkadot_node_primitives::{ maybe_compress_pov, AvailableData, Collation, CollationResult, CollationSecondedSignal, CollatorFn, MaybeCompressedPoV, PoV, Statement, UpwardMessages, }; -use polkadot_node_subsystem::{messages::CollatorProtocolMessage, PriorityLevel}; +use polkadot_node_subsystem::messages::CollatorProtocolMessage; use polkadot_primitives::{ vstaging::{ CandidateDescriptorV2, CandidateReceiptV2, ClaimQueueOffset, DEFAULT_CLAIM_QUEUE_OFFSET, @@ -644,7 +644,6 @@ impl Collator { core_index: *core_index, }, "Collator", - PriorityLevel::Normal, ) .await; } diff --git a/polkadot/parachain/test-parachains/undying/collator/src/main.rs b/polkadot/parachain/test-parachains/undying/collator/src/main.rs index 3fb847b3d609..8ab083cccfe4 100644 --- a/polkadot/parachain/test-parachains/undying/collator/src/main.rs +++ b/polkadot/parachain/test-parachains/undying/collator/src/main.rs @@ -18,10 +18,7 @@ use polkadot_cli::{Error, Result}; use polkadot_node_primitives::CollationGenerationConfig; -use polkadot_node_subsystem::{ - messages::{CollationGenerationMessage, CollatorProtocolMessage}, - PriorityLevel, -}; +use polkadot_node_subsystem::messages::{CollationGenerationMessage, CollatorProtocolMessage}; use polkadot_primitives::Id as ParaId; use sc_cli::{Error as SubstrateCliError, SubstrateCli}; use sp_core::hexdisplay::HexDisplay; @@ -148,19 +145,11 @@ fn main() -> Result<()> { para_id, }; overseer_handle - .send_msg( - CollationGenerationMessage::Initialize(config), - "Collator", - PriorityLevel::Normal, - ) + .send_msg(CollationGenerationMessage::Initialize(config), "Collator") .await; overseer_handle - .send_msg( - CollatorProtocolMessage::CollateOn(para_id), - "Collator", - PriorityLevel::Normal, - ) + .send_msg(CollatorProtocolMessage::CollateOn(para_id), "Collator") .await; // If the collator is configured to behave maliciously, simulate the specified From 10ebef2d44ddbf38587a02467d5d09db9aad0763 Mon Sep 17 00:00:00 2001 From: Alexandru Gheorghe Date: Thu, 12 Jun 2025 17:20:20 +0300 Subject: [PATCH 03/14] fixup tests Signed-off-by: Alexandru Gheorghe --- .../node/service/src/relay_chain_selection.rs | 4 ++-- polkadot/node/service/src/tests.rs | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/polkadot/node/service/src/relay_chain_selection.rs b/polkadot/node/service/src/relay_chain_selection.rs index eb547719e9d4..f016b8ba8b05 100644 --- a/polkadot/node/service/src/relay_chain_selection.rs +++ b/polkadot/node/service/src/relay_chain_selection.rs @@ -238,7 +238,7 @@ pub struct SelectRelayChainInner { impl SelectRelayChainInner where B: HeaderProviderProvider, - OH: OverseerHandleT, + OH: OverseerHandleT + OverseerHandleWithPriorityT, { /// Create a new [`SelectRelayChainInner`] wrapping the given chain backend /// and a handle to the overseer. @@ -286,7 +286,7 @@ where impl Clone for SelectRelayChainInner where B: HeaderProviderProvider + Send + Sync, - OH: OverseerHandleT, + OH: OverseerHandleT + OverseerHandleWithPriorityT, { fn clone(&self) -> Self { SelectRelayChainInner { diff --git a/polkadot/node/service/src/tests.rs b/polkadot/node/service/src/tests.rs index 78bbfcd5444f..1b8095436c6e 100644 --- a/polkadot/node/service/src/tests.rs +++ b/polkadot/node/service/src/tests.rs @@ -20,6 +20,7 @@ use futures::channel::oneshot::Receiver; use polkadot_node_primitives::approval::v2::VrfSignature; use polkadot_node_subsystem::messages::{AllMessages, BlockDescription}; use polkadot_node_subsystem_util::TimeoutExt; +use polkadot_overseer::{HighPriority, PriorityLevel}; use polkadot_test_client::Sr25519Keyring; use sp_consensus_babe::{ digests::{CompatibleDigestItem, PreDigest, SecondaryVRFPreDigest}, @@ -55,6 +56,26 @@ impl OverseerHandleT for TestSubsystemSender { } } +#[async_trait::async_trait] +impl OverseerHandleWithPriorityT for TestSubsystemSender { + async fn send_msg_with_priority>( + &mut self, + msg: M, + _origin: &'static str, + priority: PriorityLevel, + ) { + match priority { + PriorityLevel::High => { + TestSubsystemSender::send_message_with_priority::(self, msg.into()) + .await; + }, + PriorityLevel::Normal => { + TestSubsystemSender::send_message(self, msg.into()).await; + }, + } + } +} + struct TestHarness { virtual_overseer: VirtualOverseer, case_vars: CaseVars, From ebb96bd6082c7022e7eb4dc2629eebfb85101ae9 Mon Sep 17 00:00:00 2001 From: "cmd[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 12 Jun 2025 14:43:32 +0000 Subject: [PATCH 04/14] Update from github-actions[bot] running command 'prdoc --audience node_dev --bump patch' --- prdoc/pr_8834.prdoc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 prdoc/pr_8834.prdoc diff --git a/prdoc/pr_8834.prdoc b/prdoc/pr_8834.prdoc new file mode 100644 index 000000000000..bda9f1dfa7b3 --- /dev/null +++ b/prdoc/pr_8834.prdoc @@ -0,0 +1,22 @@ +title: extend overseer to send priority messages +doc: +- audience: Node Dev + description: |- + Extend overseer to send priority messages, the new functionality is used for sending messages on the grandpa call path when we call dispute-coordinator and approval-voting in finality_target_with_longest_chain to make sure we don't block unnecessarily. + + Depends on: https://github.com/paritytech/orchestra/pull/87. +crates: +- name: cumulus-client-collator + bump: patch +- name: cumulus-client-consensus-aura + bump: patch +- name: cumulus-client-pov-recovery + bump: patch +- name: polkadot-node-core-approval-voting-parallel + bump: patch +- name: polkadot-node-core-parachains-inherent + bump: patch +- name: polkadot-overseer + bump: patch +- name: polkadot-service + bump: patch From 6e9a92d58e6afdc88d31bbd97eeabdaaf27fde87 Mon Sep 17 00:00:00 2001 From: Alexandru Gheorghe Date: Fri, 13 Jun 2025 15:37:28 +0300 Subject: [PATCH 05/14] use new orchestra release Signed-off-by: Alexandru Gheorghe --- Cargo.lock | 13 ++++++++----- Cargo.toml | 4 ++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0415be929b02..51c55ed2191c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11137,8 +11137,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orchestra" -version = "0.4.0" -source = "git+https://github.com/paritytech/orchestra?branch=alexggh/router_priority_messages#b2b04a841fd0ef58f364b0fd1d2bd6e7a38b945d" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19051f0b0512402f5d52d6776999f55996f01887396278aeeccbbdfbc83eef2d" dependencies = [ "async-trait", "dyn-clonable", @@ -11153,8 +11154,9 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" -version = "0.4.0" -source = "git+https://github.com/paritytech/orchestra?branch=alexggh/router_priority_messages#b2b04a841fd0ef58f364b0fd1d2bd6e7a38b945d" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43dfaf083aef571385fccfdc3a2f8ede8d0a1863160455d4f2b014d8f7d04a3f" dependencies = [ "expander", "indexmap 2.9.0", @@ -17415,7 +17417,8 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" version = "0.6.1" -source = "git+https://github.com/paritytech/orchestra?branch=alexggh/router_priority_messages#b2b04a841fd0ef58f364b0fd1d2bd6e7a38b945d" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" dependencies = [ "coarsetime", "crossbeam-queue", diff --git a/Cargo.toml b/Cargo.toml index 86f33bf7df28..3b8d5374be6e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -898,7 +898,7 @@ memory-db = { version = "0.33.0", default-features = false } merkleized-metadata = { version = "0.5.0" } merlin = { version = "3.0", default-features = false } messages-relay = { path = "bridges/relays/messages" } -metered = { git = "https://github.com/paritytech/orchestra", branch = "alexggh/router_priority_messages", default-features = false, package = "prioritized-metered-channel" } +metered = { version = "0.6.1", default-features = false, package = "prioritized-metered-channel" } milagro-bls = { version = "1.5.4", default-features = false, package = "snowbridge-milagro-bls" } minimal-template-node = { path = "templates/minimal/node" } minimal-template-runtime = { path = "templates/minimal/runtime" } @@ -926,7 +926,7 @@ num-rational = { version = "0.4.1" } num-traits = { version = "0.2.17", default-features = false } num_cpus = { version = "1.13.1" } once_cell = { version = "1.21.3" } -orchestra = { git = "https://github.com/paritytech/orchestra", branch = "alexggh/router_priority_messages", default-features = false } +orchestra = { version = "0.4.0", default-features = false } pallet-alliance = { path = "substrate/frame/alliance", default-features = false } pallet-asset-conversion = { path = "substrate/frame/asset-conversion", default-features = false } pallet-asset-conversion-ops = { path = "substrate/frame/asset-conversion/ops", default-features = false } From 3cd020c5696cad4a56de4cba3d9b834de2c686db Mon Sep 17 00:00:00 2001 From: Alexandru Gheorghe <49718502+alexggh@users.noreply.github.com> Date: Fri, 13 Jun 2025 16:32:54 +0300 Subject: [PATCH 06/14] Update pr_8834.prdoc --- prdoc/pr_8834.prdoc | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/prdoc/pr_8834.prdoc b/prdoc/pr_8834.prdoc index bda9f1dfa7b3..414d8e89280b 100644 --- a/prdoc/pr_8834.prdoc +++ b/prdoc/pr_8834.prdoc @@ -2,20 +2,13 @@ title: extend overseer to send priority messages doc: - audience: Node Dev description: |- - Extend overseer to send priority messages, the new functionality is used for sending messages on the grandpa call path when we call dispute-coordinator and approval-voting in finality_target_with_longest_chain to make sure we don't block unnecessarily. + Extend overseer to send priority messages, the new functionality is used for sending messages + on the grandpa call path when we call dispute-coordinator and approval-voting in + finality_target_with_longest_chain to make sure we don't block unnecessarily. - Depends on: https://github.com/paritytech/orchestra/pull/87. crates: -- name: cumulus-client-collator - bump: patch -- name: cumulus-client-consensus-aura - bump: patch -- name: cumulus-client-pov-recovery - bump: patch - name: polkadot-node-core-approval-voting-parallel bump: patch -- name: polkadot-node-core-parachains-inherent - bump: patch - name: polkadot-overseer bump: patch - name: polkadot-service From 6c48a5fa6f417480c6ce77626b078d1062757a6b Mon Sep 17 00:00:00 2001 From: Javier Viola Date: Fri, 13 Jun 2025 12:53:07 +0200 Subject: [PATCH 07/14] update zombienet runners --- .github/zombienet-env | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/zombienet-env b/.github/zombienet-env index 92a6b2d5b412..ebfe19cbaa8a 100644 --- a/.github/zombienet-env +++ b/.github/zombienet-env @@ -1,5 +1,6 @@ ZOMBIENET_IMAGE=docker.io/paritytech/zombienet:v1.3.126 -ZOMBIENET_RUNNER=zombienet-arc-runner +#ZOMBIENET_RUNNER=zombienet-arc-runner +ZOMBIENET_RUNNER=parity-zombienet PUSHGATEWAY_URL=http://prometheus-pushgateway.monitoring.svc.cluster.local:9091/metrics/job/zombie-metrics DEBUG=zombie,zombie::network-node,zombie::kube::client::logs ZOMBIE_PROVIDER=k8s From e1de0961953650dc11c556b472b9e2e9f9dc0707 Mon Sep 17 00:00:00 2001 From: Javier Viola Date: Fri, 13 Jun 2025 13:28:18 +0200 Subject: [PATCH 08/14] add env vars for run in new runners --- .github/actions/zombienet-sdk/action.yml | 1 + .github/actions/zombienet/action.yml | 2 ++ .github/workflows/zombienet_polkadot.yml | 3 +++ 3 files changed, 6 insertions(+) diff --git a/.github/actions/zombienet-sdk/action.yml b/.github/actions/zombienet-sdk/action.yml index 21ef90be6963..f0ce7c33ee60 100644 --- a/.github/actions/zombienet-sdk/action.yml +++ b/.github/actions/zombienet-sdk/action.yml @@ -61,6 +61,7 @@ runs: TEST_NAME: ${{ inputs.test }} PREFIX: ${{ inputs.prefix }} run: | + export ZOMBIE_NAMESPACE=$(cat /data/namespace) ls -ltr ./artifacts cargo nextest run --archive-file ./artifacts/${PREFIX}-zombienet-tests.tar.zst --no-capture -- ${TEST_NAME} diff --git a/.github/actions/zombienet/action.yml b/.github/actions/zombienet/action.yml index 4c34e06b050e..fb4fc959b980 100644 --- a/.github/actions/zombienet/action.yml +++ b/.github/actions/zombienet/action.yml @@ -42,6 +42,8 @@ runs: LOCAL_PATH: ${{ inputs.local-dir }} CONCURRENCY: ${{ inputs.concurrency }} run: | + export ZOMBIE_NAMESPACE=$(cat /data/namespace) + /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh \ --local-dir="$(pwd)/$LOCAL_PATH" \ --concurrency=$CONCURRENCY \ diff --git a/.github/workflows/zombienet_polkadot.yml b/.github/workflows/zombienet_polkadot.yml index f8cebfc566e8..de831b7614fb 100644 --- a/.github/workflows/zombienet_polkadot.yml +++ b/.github/workflows/zombienet_polkadot.yml @@ -21,6 +21,9 @@ env: X_INFRA_INSTANCE: "spot" # don't retry sdk tests NEXTEST_RETRIES: 0 + KUBECONFIG: "/data/config" + ZOMBIE_CLEANER_DISABLED: 1 + # only run if we have changes in [subtrate, polkadot] directories or this workflow. jobs: From 6f44e5bc4c3fe4ccc6ba1501469bef80302529f4 Mon Sep 17 00:00:00 2001 From: Javier Viola Date: Fri, 13 Jun 2025 17:12:51 +0200 Subject: [PATCH 09/14] update zombienet image --- .github/zombienet-env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/zombienet-env b/.github/zombienet-env index ebfe19cbaa8a..9752161336e5 100644 --- a/.github/zombienet-env +++ b/.github/zombienet-env @@ -1,4 +1,4 @@ -ZOMBIENET_IMAGE=docker.io/paritytech/zombienet:v1.3.126 +ZOMBIENET_IMAGE=docker.io/paritytech/zombienet:v1.3.128 #ZOMBIENET_RUNNER=zombienet-arc-runner ZOMBIENET_RUNNER=parity-zombienet PUSHGATEWAY_URL=http://prometheus-pushgateway.monitoring.svc.cluster.local:9091/metrics/job/zombie-metrics From b92b52e56a7f8123e4ea68f6bc86df5b15f6a24e Mon Sep 17 00:00:00 2001 From: Javier Viola Date: Sat, 14 Jun 2025 13:42:10 +0200 Subject: [PATCH 10/14] fix ci for new zombienet runners --- .github/actions/zombienet-sdk/action.yml | 6 ------ .github/actions/zombienet/action.yml | 6 ------ .github/zombienet-env | 1 - 3 files changed, 13 deletions(-) diff --git a/.github/actions/zombienet-sdk/action.yml b/.github/actions/zombienet-sdk/action.yml index f0ce7c33ee60..626a2323538c 100644 --- a/.github/actions/zombienet-sdk/action.yml +++ b/.github/actions/zombienet-sdk/action.yml @@ -21,12 +21,6 @@ inputs: runs: using: "composite" steps: - - name: k8s_auth - shell: bash - run: | - . /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh - k8s_auth - - name: common_vars shell: bash env: diff --git a/.github/actions/zombienet/action.yml b/.github/actions/zombienet/action.yml index fb4fc959b980..65d07f8db6f4 100644 --- a/.github/actions/zombienet/action.yml +++ b/.github/actions/zombienet/action.yml @@ -14,12 +14,6 @@ inputs: runs: using: "composite" steps: - - name: k8s_auth - shell: bash - run: | - . /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh - k8s_auth - - name: common_vars shell: bash env: diff --git a/.github/zombienet-env b/.github/zombienet-env index 9752161336e5..41cf4575f474 100644 --- a/.github/zombienet-env +++ b/.github/zombienet-env @@ -1,5 +1,4 @@ ZOMBIENET_IMAGE=docker.io/paritytech/zombienet:v1.3.128 -#ZOMBIENET_RUNNER=zombienet-arc-runner ZOMBIENET_RUNNER=parity-zombienet PUSHGATEWAY_URL=http://prometheus-pushgateway.monitoring.svc.cluster.local:9091/metrics/job/zombie-metrics DEBUG=zombie,zombie::network-node,zombie::kube::client::logs From 21357a6869b417a42341a019e394fea1e6e2ec9f Mon Sep 17 00:00:00 2001 From: Javier Viola Date: Sun, 15 Jun 2025 12:39:01 +0200 Subject: [PATCH 11/14] bump zombienet version --- Cargo.lock | 24 ++++++++++++------------ Cargo.toml | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 51c55ed2191c..0d450d437d64 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -28700,9 +28700,9 @@ dependencies = [ [[package]] name = "zombienet-configuration" -version = "0.3.0" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aabc9bb61ba954616b2d480a1a42eae0fdc6322c701f7b61a3836796eeed178" +checksum = "42e734ceb92e298b509dd757c55607d1715e07ab3379e48d84f6880082b8d49c" dependencies = [ "anyhow", "lazy_static", @@ -28721,9 +28721,9 @@ dependencies = [ [[package]] name = "zombienet-orchestrator" -version = "0.3.0" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006806f36101abc07822b55513e3009f00f7a48a3e708de909aad4749a6cfe70" +checksum = "c9ae1ccac7bf93c94b458bca8ab9f43e000ad99be95f5c103f044b60f6561b5d" dependencies = [ "anyhow", "async-trait", @@ -28754,9 +28754,9 @@ dependencies = [ [[package]] name = "zombienet-prom-metrics-parser" -version = "0.3.0" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f1646c6c0968033d3808bfa91674f6a31f149491020bdbff3ad7e1d9ad0237" +checksum = "f54a3dc97fa80db5278603d16e0b5156ab534cbc0f30e2116c16424622ecbe4e" dependencies = [ "pest", "pest_derive", @@ -28765,9 +28765,9 @@ dependencies = [ [[package]] name = "zombienet-provider" -version = "0.3.0" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3feea6d1ac0e3e4f2724e386c3034ee10af2afc7168dde9f091337ad2218ace5" +checksum = "77a8cc8dd76e23460a0e8d33ad3e9747a91854a499c07dc2bc6ee18248df3e59" dependencies = [ "anyhow", "async-trait", @@ -28796,9 +28796,9 @@ dependencies = [ [[package]] name = "zombienet-sdk" -version = "0.3.0" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fc3ec1a08203cf2b96c5ecc84ae8c850ec0c744f4e682abd79b2846f981e5c2" +checksum = "4f1f20ac187b9591649a4efea38acc7b93f93fb79d843bc00a591d7bf55a3ff9" dependencies = [ "async-trait", "futures", @@ -28814,9 +28814,9 @@ dependencies = [ [[package]] name = "zombienet-support" -version = "0.3.0" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e057e2debab330e5a1a7d37bec91c260fd1486666a926074919c222c364ed67" +checksum = "944d1bbd9c4063c7c88ac4531410ea1b197ae7d05fd83992738095d495b053f1" dependencies = [ "anyhow", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 3b8d5374be6e..54a716ee877a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1460,8 +1460,8 @@ xcm-runtime-apis = { path = "polkadot/xcm/xcm-runtime-apis", default-features = xcm-simulator = { path = "polkadot/xcm/xcm-simulator", default-features = false } yet-another-parachain-runtime = { path = "cumulus/parachains/runtimes/testing/yet-another-parachain" } zeroize = { version = "1.7.0", default-features = false } -zombienet-orchestrator = { version = "0.3.0" } -zombienet-sdk = { version = "0.3.0" } +zombienet-orchestrator = { version = "0.3.6" } +zombienet-sdk = { version = "0.3.6" } zstd = { version = "0.12.4", default-features = false } [profile.release] From 08851f3ade6dd20b029d473e180af1cc0dcf2ebb Mon Sep 17 00:00:00 2001 From: Javier Viola Date: Sun, 15 Jun 2025 14:48:37 +0200 Subject: [PATCH 12/14] set env var for new runners --- .github/actions/zombienet-sdk/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/zombienet-sdk/action.yml b/.github/actions/zombienet-sdk/action.yml index 626a2323538c..ab52ea7dca5e 100644 --- a/.github/actions/zombienet-sdk/action.yml +++ b/.github/actions/zombienet-sdk/action.yml @@ -55,7 +55,7 @@ runs: TEST_NAME: ${{ inputs.test }} PREFIX: ${{ inputs.prefix }} run: | - export ZOMBIE_NAMESPACE=$(cat /data/namespace) + export ZOMBIE_K8S_CI_NAMESPACE=$(cat /data/namespace) ls -ltr ./artifacts cargo nextest run --archive-file ./artifacts/${PREFIX}-zombienet-tests.tar.zst --no-capture -- ${TEST_NAME} From 62354aa61ede42d068e5221a80d2f59fa1b43076 Mon Sep 17 00:00:00 2001 From: Alexandru Gheorghe Date: Tue, 17 Jun 2025 11:20:16 +0300 Subject: [PATCH 13/14] revert zombient Signed-off-by: Alexandru Gheorghe --- .github/workflows/zombienet_polkadot.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/zombienet_polkadot.yml b/.github/workflows/zombienet_polkadot.yml index de831b7614fb..f8cebfc566e8 100644 --- a/.github/workflows/zombienet_polkadot.yml +++ b/.github/workflows/zombienet_polkadot.yml @@ -21,9 +21,6 @@ env: X_INFRA_INSTANCE: "spot" # don't retry sdk tests NEXTEST_RETRIES: 0 - KUBECONFIG: "/data/config" - ZOMBIE_CLEANER_DISABLED: 1 - # only run if we have changes in [subtrate, polkadot] directories or this workflow. jobs: From 9af9913d0fe59cad420fd9c72953c4fe0a60fa70 Mon Sep 17 00:00:00 2001 From: Javier Viola Date: Tue, 17 Jun 2025 11:56:44 +0200 Subject: [PATCH 14/14] add needed env vars to polkadot workflow --- .github/workflows/zombienet_polkadot.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/zombienet_polkadot.yml b/.github/workflows/zombienet_polkadot.yml index f8cebfc566e8..99964cf3821a 100644 --- a/.github/workflows/zombienet_polkadot.yml +++ b/.github/workflows/zombienet_polkadot.yml @@ -21,6 +21,8 @@ env: X_INFRA_INSTANCE: "spot" # don't retry sdk tests NEXTEST_RETRIES: 0 + KUBECONFIG: "/data/config" + ZOMBIE_CLEANER_DISABLED: 1 # only run if we have changes in [subtrate, polkadot] directories or this workflow. jobs: