Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix pending change after flushing
RegisterView
(linera-io#3133)
## Motivation <!-- Briefly describe the goal(s) of this PR. --> @afck ran into an issue where an assertion caught unexpected pending changes after voting for a block proposal. After investigating the issue, the cause seems to be that `RegisterView::flush` had an edge case where it wouldn't clear it's `update` field. ## Proposal <!-- Summarize the proposed changes and how they address the goal(s) stated above. --> Clear the `update` field after successfully flushing. ## Test Plan <!-- Explain how you made sure that the changes are correct and that they perform as intended. Please describe testing protocols (CI, manual tests, benchmarks, etc) in a way that others can reproduce the results. --> A unit test was added to reproduce the issue. ## Release Plan <!-- If this PR targets the `main` branch, **keep the applicable lines** to indicate if you recommend the changes to be picked in release branches, SDKs, and hotfixes. This generally concerns only bug fixes. Note that altering the public protocol (e.g. transaction format, WASM syscalls) or storage formats requires a new deployment. --> - These changes should be backported to the latest `devnet` branch, then - be released in a validator hotfix. - These changes should be backported to the latest `testnet` branch, then - be released in a validator hotfix. ## Links <!-- Optional section for related PRs, related issues, and other references. If needed, please create issues to track future improvements and link them here. --> - [reviewer checklist](https://github.com/linera-io/linera-protocol/blob/main/CONTRIBUTING.md#reviewer-checklist)
- Loading branch information