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

[Defect] Be able to re-propose Upgrade with the same name if we don't get a quorum of Trustee approvals by the specified block height (time) #344

Closed
ashcherbakov opened this issue Apr 29, 2022 · 2 comments
Assignees
Labels
bug Something isn't working size: M
Projects

Comments

@ashcherbakov
Copy link
Contributor

How to reproduce:

  • Propose an upgrade at height X
  • Don't have a quorum of approvals by the height X
  • Got the quorum after the X hight is reached

Actual Behaviour:

  • An error is returned on the last approvals: "upgrade cannot be scheduled in the past"
  • The Upgrade Proposal is not removed (will be there forever)
  • It will be not possible to re-propose upgrade with the same name. As the upgrade name is bound to the release, a new release with a new upgrade name will have to be issued.

Expected Behaviour:

  • An error is returned on the last approvals: "upgrade cannot be scheduled in the past"
  • Upgrade Proposal is removed
  • It's possible to re-propose upgrade with the same name, so that upgrade can be happen without a need to re-issue a release.

Reason:

Proposed Fix:

@ashcherbakov ashcherbakov added the bug Something isn't working label Apr 29, 2022
@ashcherbakov ashcherbakov added this to Backlog in DCL via automation Apr 29, 2022
@ashcherbakov ashcherbakov added this to the v1.0: Main Net Launch milestone Apr 29, 2022
@ashcherbakov ashcherbakov moved this from Backlog to To do in DCL Apr 29, 2022
abdulla-ashurov pushed a commit to abdulla-ashurov/distributed-compliance-ledger that referenced this issue Apr 29, 2022
… get a quorum of Trustee approvals by the specified block height (time)

Fixes zigbee-alliance#344
@abdulla-ashurov abdulla-ashurov moved this from To do to In progress in DCL Apr 29, 2022
@abdulla-ashurov
Copy link
Collaborator

abdulla-ashurov commented May 4, 2022

@ashcherbakov, @uabjabborov
Wrote the implementation for this ticket #344, but we have another problem:

  • We proposed an upgrade and then we try to approve the upgrade (when current block height > plan update height).
    The problem is that after that we return an error and the library ignores all changes that have occurred in this iteration That is we don't remove Proposed upgrade.

We can offer two solutions to this problem:

  1. We can add a new command reject-proposed-upgrade, which helps us remove updates from the entity Proposed upgrade. This command will work through voting and like other commands.
  2. We can add a new command revoke-own-proposed-upgrade for Trustee, which proposed upgrade. This command helps us remove updates from a Trustee, which proposed the upgrade.

@uabjabborov uabjabborov moved this from In progress to To do in DCL May 11, 2022
@ashcherbakov
Copy link
Contributor Author

Both options make sense.
We can also consider a 3d option:
When proposing a new upgrade, if there is an expired upgrade proposal with the same name, we remove the proposal and add a new one (with the same name and all votes cleared) instead of failing with "Proposed upgrade with name=%v already exists on the ledger".

@abdulla-ashurov abdulla-ashurov moved this from To do to In progress in DCL May 19, 2022
@abdulla-ashurov abdulla-ashurov moved this from In progress to To do in DCL May 19, 2022
@abdulla-ashurov abdulla-ashurov moved this from To do to In progress in DCL May 20, 2022
@abdulla-ashurov abdulla-ashurov self-assigned this May 20, 2022
@abdulla-ashurov abdulla-ashurov moved this from In progress to In Review in DCL May 23, 2022
DCL automation moved this from In Review to Done May 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working size: M
Projects
No open projects
DCL
  
Done
Development

No branches or pull requests

2 participants