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

Staging Mediating Transfers Expires in the mediating node #1831

Closed
agatsoh opened this issue Jun 29, 2020 · 8 comments · Fixed by #2110
Closed

Staging Mediating Transfers Expires in the mediating node #1831

agatsoh opened this issue Jun 29, 2020 · 8 comments · Fixed by #2110
Assignees
Labels
bug 🕷️ Something isn't working

Comments

@agatsoh
Copy link
Contributor

agatsoh commented Jun 29, 2020

Thanks for filing a bug report :-)

Steps to Reproduce

  1. Perform a one hop mediated transfer

I have 3 nodes
light client
0xAa1Ab1fDA93e14c2d564B25Ba08c9d374F5F9541 Main Account
0x9bf12572aBd794b031313fE286040nce727eC6191 Raiden Account
.|
V
0x949e47d1E0C5351eCBb7C50bB5Dcf3fE915468e9 RC
.|
V
0xdD29eA8d403365BcbFFd659a13d4A24370e2d940 RC

Mediated transfers remains Pending in the mediating node and then expires

Expected Result

  • Mediated Transfer should be successful

Actual Result

light_mediated_staging_failed_spinner
light_mediated_staging_failed

Raiden Python Client version:
1.1.0 Sun Prince

Additional Infos (Optional)

- Browser & version
- Browser console errors
- Device / OS
@taleldayekh taleldayekh added the bug 🕷️ Something isn't working label Jun 30, 2020
@andrevmatos andrevmatos added this to the Product Backlog milestone Jul 6, 2020
@agatsoh
Copy link
Contributor Author

agatsoh commented Jul 7, 2020

Similar scenario happened on the mainnet on latest master

The initiating node is the light client
0x80593AE89B11Dff1C251500c6A3918C8C3f38B9C
sub key
0x14efA2b271969A46A094A23e0d49E32C1B617f89

Mediating node(and receiver) is the python client
0xF128A427DeFf3a4f792373f4BE38bEecD07d4ffE

Light client logs
raiden_2020-07-07T12_45_10.674Z.log

Mediating node logs
node-F128A4-mainnet.7thJuly2020.log

@christianbrb
Copy link
Contributor

Related to #1933

@agatsoh
Copy link
Contributor Author

agatsoh commented Jul 31, 2020

This issue was encountered by me today on the mainnet as well hence uploading the logs of the light client as well as mediating node. Most probably has nothing to do with the LC but only with the python client.

LC logs
raiden_0x14efA2b271969A46A094A23e0d49E32C1B617f89_2020-07-31T12_16_09.934Z.log

mediating python node logs

node-F128A4-mainnet.31thJuly2020.log

Edit:
I have tested this issue after Andres this PR was merged #2009

@agatsoh agatsoh reopened this Jul 31, 2020
@christianbrb
Copy link
Contributor

@Dominik1999 Could you take a look at this issue? It seems to be a Python Client issue.

@karlb
Copy link
Contributor

karlb commented Aug 3, 2020

mediating python node logs

node-F128A4-mainnet.31thJuly2020.log

The relevant error message is Invalid LockedTransfer message. Nonce did not change sequentially, expected: 9 got: 7.. Does anyone already have more insight into this (maybe as part of #1933?)? If not, I'll go through the logs and trace the nonce changes.

@christianbrb
Copy link
Contributor

@karlb Thanks a lot for looking into this :)

We haven't done any investigations on the python client yet.

@andrevmatos Is available if you need any support.

@karlb
Copy link
Contributor

karlb commented Aug 3, 2020

I looked at the transfer with the secrethash 0x57f98753b83718e58861c4324572a63deeb94a56bc5fade7ec7d49cf44d713b3 together with Augusto. If I read the light client logs correctly, then the expiration block for the transfer is 0xa12bf1 = 10562545 and the failure "type":"transfer/failure","payload":"RaidenError: Transfer expired. happened at roughly 10567249. This indicates that the transfer is rightfully expired (10562545 < 10567249). Maybe the light client had an outdated state when initiating the transfer?

I also see many retried messages in the logs. So probably there's also some problem with the handling of delivered/processed messages between the light client and the python client.

@andrevmatos
Copy link
Contributor

I'll add more informative errors there as well, to tell which was the expected and received nonce. As you said, it really looks like the transfer was rightfully expired, but old messages should be retried as per our current algorithm.
Eventually, I'd like to add messages to inform the BalanceProof of nonce we're stuck on, this may allow clients to recover state loss.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug 🕷️ Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants