elastic scaling: rework core selector handling#6939
elastic scaling: rework core selector handling#6939
Conversation
|
All GitHub workflows were cancelled due to failure one of the required jobs. |
…erimental-ump-signals-feature
|
I'm having second thoughts about whether or not removing the If you have a parachain runtime and update to this version, make sure that you use a
If they don't, they will run into core index mismatches if they have multiple cores assigned. (leading to skipped slots and potentially parachain stall). If we keep the functionality of sending ump signals guarded under |
Yes, this is sub-optimal, but it only applies to parachains that have multiple cores assigned. I think the default implementation |
| /// allowed. | ||
| #[cfg_attr( | ||
| feature = "std", | ||
| error("Candidate contains core selector but descriptor version is v1") |
There was a problem hiding this comment.
| error("Candidate contains core selector but descriptor version is v1") | |
| error("Version 1 receipt does not support core selectors") |
|
|
||
| // Send the core selector UMP signal. This is experimental until relay chain | ||
| // validators are upgraded to handle ump signals. | ||
| #[cfg(feature = "experimental-ump-signals")] |
There was a problem hiding this comment.
Didn't we also used this to guard until enabling RFC103 on the relay chain?
There was a problem hiding this comment.
it's important that they know at least to ignore the signals if the feature is disabled (which I'm pretty sure was included in a node release already, will check)
There was a problem hiding this comment.
hmm, I think you're right. the feature needs to be enabled on the relay chain, this was another reason I chose a compile time feature back then..
So I'll leave the core selector config for later and cherry-pick the changes to only refuse candidates that output UMP signals but use v1 descriptor into its own PR that can be merged and also backported
|
Also, to make it more clear we can rename the implementations of
|
So if parachains upgrade their chain, they should use However, does anything speak against adjusting the lookahead too to prevent this mismatch? If we already see this footgun lets remove it. |
…erimental-ump-signals-feature
This would basically mean making lookahead work with elastic scaling. Do we want to support that? |
|
I set the |
|
Superseded by #9002 |
Prior to the PR, the parachain runtimes were prevented from sending the core selector ump signal by the
experimental-ump-signalscompile-time feature. This was needed because the validators were not yet upgraded to be able to decode the new signals.This PR removes the
experimental-ump-signalsfeature and makes the runtime send the UMP signal if theSelectCoreimpl (part of the runtime config trait) returnsSome(...). This is a breaking change on the SelectCore trait so cannot be backported.It also adds an impl for
(), which returnsNone.Instructions on how to configure the parachain runtime for elastic scaling will be included in #6739