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

Don't cleanup the mediator task if ExpireLock message is not processed #2905

Closed
LefterisJP opened this issue Oct 26, 2018 · 1 comment
Closed
Assignees

Comments

@LefterisJP
Copy link
Contributor

Problem Definition

During heavy testing with intermediate restarting we noticed that sometimes channels could get in a stuck state (inability to send transfers in one direction) and the logs had a lot of Nonce did not change sequentially, expected: X, got: X+Y entries.

After a lot of logs and debugging provided by @palango @ulope and @czepluch at the end @hackaugusto managed to find the root cause of the problem:

  • For a path A-B-C
  • B is the mediator, and the node that will fail
  • The lock for a transfer T is sent, which expires at block N
  • For some reason A doesn't respond, and the lock expires (perhaps a restart)
  • The block N + confirmation is reached, and the lock is considered expired
  • The node B process the block and sets the state of the lock to expired
  • the bug: because the locks are expired the task is considered finalized, and cleans itself
  • Because of the above, there is no task available to process the remove expired lock message, and the channel gets stuck
@LefterisJP
Copy link
Contributor Author

LefterisJP commented Oct 27, 2018

Fixed by #2901

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants