Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Stuck Collator Funds #4229

Merged
merged 16 commits into from
Apr 23, 2024
Merged

Fix Stuck Collator Funds #4229

merged 16 commits into from
Apr 23, 2024

Conversation

joepetrowski
Copy link
Contributor

Fixes #4206

In #1340 one of the storage types was changed from Candidates to CandidateList. Since the actual key includes the hash of this value, all of the candidates stored here are (a) "missing" and (b) unable to unreserve their candidacy bond.

This migration kills the storage values and refunds the deposit held for each candidate.

@joepetrowski joepetrowski added I2-bug The node fails to follow expected behavior. T2-pallets This PR/Issue is related to a particular pallet. T14-system_parachains This PR/Issue is related to system parachains. labels Apr 21, 2024
@joepetrowski joepetrowski marked this pull request as ready for review April 22, 2024 18:23
Co-authored-by: georgepisaltu <52418509+georgepisaltu@users.noreply.github.com>
joepetrowski and others added 8 commits April 23, 2024 06:58
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Signed-off-by: georgepisaltu <george.pisaltu@parity.io>
Signed-off-by: georgepisaltu <george.pisaltu@parity.io>
@joepetrowski joepetrowski added this pull request to the merge queue Apr 23, 2024
Merged via the queue into master with commit eda5e5c Apr 23, 2024
137 of 138 checks passed
@joepetrowski joepetrowski deleted the fix-collator-locked-funds branch April 23, 2024 13:17
EgorPopelyaev pushed a commit that referenced this pull request Apr 24, 2024
Fixes #4206

In #1340 one of the storage types was changed from `Candidates` to
`CandidateList`. Since the actual key includes the hash of this value,
all of the candidates stored here are (a) "missing" and (b) unable to
unreserve their candidacy bond.

This migration kills the storage values and refunds the deposit held for
each candidate.

---------

Signed-off-by: georgepisaltu <george.pisaltu@parity.io>
Co-authored-by: georgepisaltu <52418509+georgepisaltu@users.noreply.github.com>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: georgepisaltu <george.pisaltu@parity.io>
EgorPopelyaev pushed a commit that referenced this pull request Apr 24, 2024
Fixes #4206

In #1340 one of the storage types was changed from `Candidates` to
`CandidateList`. Since the actual key includes the hash of this value,
all of the candidates stored here are (a) "missing" and (b) unable to
unreserve their candidacy bond.

This migration kills the storage values and refunds the deposit held for
each candidate.

---------

Signed-off-by: georgepisaltu <george.pisaltu@parity.io>
Co-authored-by: georgepisaltu <52418509+georgepisaltu@users.noreply.github.com>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: georgepisaltu <george.pisaltu@parity.io>
EgorPopelyaev pushed a commit that referenced this pull request Apr 24, 2024
Fixes #4206

In #1340 one of the storage types was changed from `Candidates` to
`CandidateList`. Since the actual key includes the hash of this value,
all of the candidates stored here are (a) "missing" and (b) unable to
unreserve their candidacy bond.

This migration kills the storage values and refunds the deposit held for
each candidate.

---------

Signed-off-by: georgepisaltu <george.pisaltu@parity.io>
Co-authored-by: georgepisaltu <52418509+georgepisaltu@users.noreply.github.com>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: georgepisaltu <george.pisaltu@parity.io>
EgorPopelyaev pushed a commit that referenced this pull request Apr 24, 2024
Fixes #4206

In #1340 one of the storage types was changed from `Candidates` to
`CandidateList`. Since the actual key includes the hash of this value,
all of the candidates stored here are (a) "missing" and (b) unable to
unreserve their candidacy bond.

This migration kills the storage values and refunds the deposit held for
each candidate.

---------

Signed-off-by: georgepisaltu <george.pisaltu@parity.io>
Co-authored-by: georgepisaltu <52418509+georgepisaltu@users.noreply.github.com>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: georgepisaltu <george.pisaltu@parity.io>
EgorPopelyaev pushed a commit that referenced this pull request Apr 25, 2024
Backport of #4229 into the v1.7.0 release in order to support dependent
runtimes. This version of the SDK doesn't have
`UncheckedOnRuntimeUpgrade`, so I do it the "old way".
EgorPopelyaev pushed a commit that referenced this pull request Apr 26, 2024
Backport of #4229 into the v1.7.0 release in order to support dependent
runtimes. This version of the SDK doesn't have
`UncheckedOnRuntimeUpgrade`, so I do it the "old way".
EgorPopelyaev pushed a commit that referenced this pull request Apr 26, 2024
Backport of #4229 into the v1.7.0 release in order to support dependent
runtimes. This version of the SDK doesn't have
`UncheckedOnRuntimeUpgrade`, so I do it the "old way".
EgorPopelyaev pushed a commit that referenced this pull request Apr 26, 2024
Backport of #4229 into the v1.7.0 release in order to support dependent
runtimes. This version of the SDK doesn't have
`UncheckedOnRuntimeUpgrade`, so I do it the "old way".
EgorPopelyaev added a commit that referenced this pull request Apr 26, 2024
Backport of #4229 into the v1.7.0 release in order to support dependent
runtimes. This version of the SDK doesn't have
`UncheckedOnRuntimeUpgrade`, so I do it the "old way".
EgorPopelyaev pushed a commit that referenced this pull request Apr 26, 2024
Backport of #4229 into the v1.7.0 release in order to support dependent
runtimes. This version of the SDK doesn't have
`UncheckedOnRuntimeUpgrade`, so I do it the "old way".
EgorPopelyaev pushed a commit that referenced this pull request Apr 26, 2024
Backport of #4229 into the v1.7.0 release in order to support dependent
runtimes. This version of the SDK doesn't have
`UncheckedOnRuntimeUpgrade`, so I do it the "old way".
@Polkadot-Forum
Copy link

This pull request has been mentioned on Polkadot Forum. There might be relevant details there:

https://forum.polkadot.network/t/paritytech-update-for-april/7646/1

@wischli
Copy link

wischli commented Jun 6, 2024

Can someone please explain to me why this fix is only part of SDK V1.11.0 and not any previous version? The error was introduced in v1.7.0 and should be backported to that version!

On Centrifuge Chain, the v1 migration leads to collator candidates being removed from the session whitelist (i.e. queued keyes is reduced to the invulnerables). It wasn't a smooth debugging process as part of our effort to upgrade to v1.7.2 because the v2 migration is simply not part of the codebase until SDK v1.11.0.

@Polkadot-Forum
Copy link

This pull request has been mentioned on Polkadot Forum. There might be relevant details there:

https://forum.polkadot.network/t/paritytech-update-for-april-2024/7646/5

bkchr pushed a commit that referenced this pull request Jun 6, 2024
Backport of #4229 into the v1.7.0 release in order to support dependent
runtimes. This version of the SDK doesn't have
`UncheckedOnRuntimeUpgrade`, so I do it the "old way".
bkchr pushed a commit that referenced this pull request Jun 6, 2024
Backport of #4229 into the v1.7.0 release in order to support dependent
runtimes. This version of the SDK doesn't have
`UncheckedOnRuntimeUpgrade`, so I do it the "old way".
@joepetrowski
Copy link
Contributor Author

joepetrowski commented Jun 6, 2024

Can someone please explain to me why this fix is only part of SDK V1.11.0 and not any previous version? The error was introduced in v1.7.0 and should be backported to that version!

On Centrifuge Chain, the v1 migration leads to collator candidates being removed from the session whitelist (i.e. queued keyes is reduced to the invulnerables). It wasn't a smooth debugging process as part of our effort to upgrade to v1.7.2 because the v2 migration is simply not part of the codebase until SDK v1.11.0.

It was backported to 1.7: #4288

It was in the crates 10.0.2 release, e.g. as applied here: polkadot-fellows/runtimes#289

This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I2-bug The node fails to follow expected behavior. T2-pallets This PR/Issue is related to a particular pallet. T14-system_parachains This PR/Issue is related to system parachains.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

System chains: all kusama system chain permissionless collators were kicked out of the active collator list
5 participants