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

Fix update_lock #10485

Merged
merged 5 commits into from
Dec 15, 2021
Merged

Fix update_lock #10485

merged 5 commits into from
Dec 15, 2021

Conversation

gavofyork
Copy link
Member

@gavofyork gavofyork commented Dec 14, 2021

update_lock expects that inc_consumers cannot fail if the account is funded, an assumption which the MaxConsumers limit breaks.

This introduce a new function inc_consumers_without_limit, which provides the old functionality. This makes MaxConsumers a soft limit, able to be breached under limited situations. Specifically, the actual maximum number of consumers is MaxConsumers plus the callable instances of inc_consumers_without_limit, which for the Polkadot chain is 1 (owing to the single instance of the Locks pallet).

For now we default to just doubling it in the case of a single ConstU32 MaxConsumers definition which is fine for anything non-production. For live chains, we might want to tailor it a little more using the pair-Getter impl. It doesn't really matter yet as the benchmarks don't take this into account. The main thing is to ensure the numbers stay low enough that sorting isn't going to be a major cost.

@gavofyork gavofyork added A0-please_review Pull request needs code review. B7-runtimenoteworthy C1-low PR touches the given topic and has a low impact on builders. D9-needsaudit 👮 PR contains changes to fund-managing logic that should be properly reviewed and externally audited labels Dec 14, 2021
@gavofyork
Copy link
Member Author

Note the build error is unrelated.

@gavofyork
Copy link
Member Author

Cumulus error unrelated.

@gavofyork gavofyork merged commit a64f702 into master Dec 15, 2021
@gavofyork gavofyork deleted the gav-fix-update-locks branch December 15, 2021 00:27
@viniul viniul added D1-audited 👍 PR contains changes to fund-managing logic that has been properly reviewed and externally audited and removed D9-needsaudit 👮 PR contains changes to fund-managing logic that should be properly reviewed and externally audited labels Dec 16, 2021
seunlanlege pushed a commit to seunlanlege/substrate that referenced this pull request Dec 17, 2021
* Fix update_lock

* Fixes

* Formatting

* add `inc_consumers_without_limits` to session too

Co-authored-by: Shawn Tabrizi <[email protected]>
grishasobol pushed a commit to gear-tech/substrate that referenced this pull request Mar 28, 2022
* Fix update_lock

* Fixes

* Formatting

* add `inc_consumers_without_limits` to session too

Co-authored-by: Shawn Tabrizi <[email protected]>
AurevoirXavier added a commit to darwinia-network/darwinia-common that referenced this pull request Sep 8, 2022
ark0f pushed a commit to gear-tech/substrate that referenced this pull request Feb 27, 2023
* Fix update_lock

* Fixes

* Formatting

* add `inc_consumers_without_limits` to session too

Co-authored-by: Shawn Tabrizi <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A0-please_review Pull request needs code review. C1-low PR touches the given topic and has a low impact on builders. D1-audited 👍 PR contains changes to fund-managing logic that has been properly reviewed and externally audited
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants