-
Notifications
You must be signed in to change notification settings - Fork 906
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
Unable to pay extreme multipart payment in tests #7605
Comments
I think the problem is with the parallel channels. On I can see that UPD: There's one channeld instance for every channel. So maybe lightningd is sending the HTLC request to the wrong subdaemon? As a matter of fact in the logs:
both HTLC requests go to the same |
There is a channel selection in lightning/lightningd/peer_htlcs.c Line 1215 in 9d88ce3
Is that a good idea, why wouldn't we try to forward right on the channels we have been requested to? Clearly in this case that function is not selecting the best channel. |
Though non-strict forwarding is allowed: https://github.com/lightning/bolts/blob/master/04-onion-routing.md#non-strict-forwarding |
As a follow up to issue #7563, I have tested
renepay
on the same topology that @daywalker90 proposedfor testing
getroutes
. It turned out the payment failed withfailed to find a feasible flow
due to a sequence of HTLC failures on a remote channel that should have had enough liquidity.
To reproduce the problem I tried the following test using only
sendpay
.The payment flow is:
l1 -> l2 -> l3
, where there are more than one channels connectingl1->l2
and
l2->l3
.When trying to send a 4 part payment with the following routes
l1->l2->l3
over a couple of channels with capacity 400k,l1->l2->l3
over a couple of channels with capacity 300k,l1->l2->l3
over a couple of channels with capacity 200k,l1->l2->l3
over a couple of channels with capacity 100k.One or more payment parts always fail at the
l2->l3
hop withCHANNEL_ERR_CHANNEL_CAPACITY_EXCEEDED
seenat
l2
logs.Another simpler case that fails as well is:
l1->l2->l3
over a couple of channels with capacity 400k,l1->l2->l3
over a couple of channels with capacity 300k.If instead I try making a single part payment:
l1->l2->l3
over a couple of channels with capacity 400k.The attempt succeeds.
The text was updated successfully, but these errors were encountered: