raiden-network / raiden

Raiden Network
https://developer.raiden.network
Other
1.84k stars 376 forks source link

Payment couldn't be completed because: none of the available routes could be used #5309

Closed Dominik1999 closed 4 years ago

Dominik1999 commented 4 years ago

I ran bf1 on top of Rakan's PR https://github.com/raiden-network/raiden/pull/5278

I changed bf1 like

    default-settle-timeout: 80
    default-reveal-timeout: 40
  node_options:
    0:
      matrix-server: https://transport01.raiden.network
    1:
      matrix-server: https://transport02.raiden.network
    2:
      matrix-server: https://transport03.raiden.network
    3:
      matrix-server: https://transport04.raiden.network
    4:
      matrix-server: https://transport01.raiden.network

So we use every transport server and increased the timeouts, see above. It failed it the first transfer of this block https://github.com/raiden-network/raiden/blob/a220f4a59604d55c6095186b0d739f3cf1e93777/raiden/tests/scenarios/bf1_basic_functionality.yaml#L103

│scenario_player.exceptions.legacy.RESTAPIStatusMismatchError: HTTP status code "409" while fetching http://127.0.0.1:45645/api/v1/payments/0x62083c80353Df771426D209eF578619EE68D5C7A/0xDe255B3BE8458485740E913801f69be41b81f59e. Expected 2..: {"errors": "Payment couldn't be completed because: none of the available routes could be used"}   

Here are all the logs

bf1-fail-on-top-of-PR-rakan.zip

rakanalh commented 4 years ago
-> lock_timeout_valid
False
-> lock_timeout <= channel_state.settle_timeout
True
-> lock_timeout >= channel_state.reveal_timeout
False
-> lock_timeout
30
-> channel_state.reveal_timeout
40
rakanalh commented 4 years ago

This happens because the scenario had 3 params:

@Dominik1999 you changed the values to 40/80 for reveal & settle timeout respectively but did not also increase the lock timeout value for the transfers.

Dominik1999 commented 4 years ago

ok makes sense thanks for the quick look