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

Handle upgrading channels in TimeoutPacket. #4138

Closed

Conversation

DimitrisJim
Copy link
Contributor

Description

closes: #4080

Commit Message / Changelog Entry

Handle upgrading channels in TimeoutPacket.

see the guidelines for commit messages. (view raw markdown for examples)


Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

  • Targeted PR against correct branch (see CONTRIBUTING.md).
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
  • Code follows the module structure standards and Go style guide.
  • Wrote unit and integration tests.
  • Updated relevant documentation (docs/) or specification (x/<module>/spec/).
  • Added relevant godoc comments.
  • Provide a commit message to be used for the changelog entry in the PR description for review.
  • Re-reviewed Files changed in the Github PR explorer.
  • Review Codecov Report in the comment section below once CI passes.

@@ -83,10 +83,10 @@ func (k Keeper) TimeoutPacket(
return types.ErrNoOpMsg
}

if channel.State != types.OPEN {
if channel.State != types.OPEN && channel.FlushStatus != types.FLUSHING {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rejects all channels that aren't OPEN and that are not currently flushing (which leaves us with TRYUPGRADE and ACKUPGRADE in a FLUSHING state allowed to timeout packets).

err = path.EndpointA.UpdateClient()
suite.Require().NoError(err)

// Move channel to TRYUPGRADE and to FLUSH_COMPLETE manually.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

due to the positioning of the check in TimeoutPacket (after we check if len(commitment) == 0 it doesn't seem feasable we can check the combination [TRYUPGRADE/FLUSHCOMPLETE] w/o setting them manually.

@DimitrisJim DimitrisJim added the channel-upgradability Channel upgradability feature label Jul 20, 2023
Copy link
Contributor

@charleenfei charleenfei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm for this version! although i think this logic may need to get updated wrt spec changes 🙈

@DimitrisJim
Copy link
Contributor Author

although i think this logic may need to get updated wrt

Ah, yeah. It appears most will 😄

@DimitrisJim
Copy link
Contributor Author

Think it might be worth to close for now and wait for the updates. Will keep issue open to keep track of it ⚜️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
channel-upgradability Channel upgradability feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants