fix(PocketIC): consensus registry version of instance resumed from existing state #7502
+71
−34
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes the consensus registry version of a PocketIC instance resumed from an existing state: for canister http outcalls to work that registry version must be equal to the latest registry version which was not the case for a PocketIC instance resumed from an existing state (in that case the consensus registry version was equal to the registry version at which the corresponding subnet was created which is not always equal to the latest registry version if there are multiple subnets).
More details:
check_share_against_contextrequires the registry version of the canister http outcall share (set to the latest registry version by PocketIC) to match the consensus registry version retrieved from the consensus pool cache set by PocketIC here when loading an existing subnet and here when creating a new subnet;make_registry_cupused so far creates a CUP with the registry version at which the corresponding registry keycatch_up_package_contents_{subnet_id}was inserted into the registry (the registry version at which the corresponding subnet was created by PocketIC);make_registry_cup_from_cup_contentsused in this PR creates a CUP with a registry version specified in the function's input parameters which allows PocketIC to use the latest registry version in the CUP.