Description
Creating a separate issue to continue the discussion from #3707 (comment). This may be fixed by #3707 but I'm not sure.
Summary
We're currently dealing with issues in prod where sending a MPP payment which requires only two of the sender's outbound channels (i.e. two MPP shards) is actually producing a MPP route with seven shards. With a per-path success rate of 85% (our observed probing success rate), the overall payment success rate drops to a measly 0.85^7 = 32%.
Logs
Hey @MaxFangX, this PR should reduce the number of shards in some cases but I'm not sure that it fully accounts for 7 shards vs 2... Let me know if you have logs for this case or any way to reproduce 👀
I do have logs for this case actually! They were a pain to get, but the basic setup (on mainnet) was:
- Have multiple channels (5), three of them have low balance, and two of them have some balance, say 40k sats and 20k sats.
- Send an amount that requires MPP, say 50k sats, from Lexe to an external wallet (in this case we tested with Breez)
- The resulting route has a ton of shards (7).
The logs are a bit hard to read, but I was able to capture the route-finding output, and if you ctrl+f for "Got route" you can see the 7-shard route that resulted from LDK pathfinding: https://gist.github.com/MaxFangX/cfb32ca091828ea27d2acd6e2be4bf66
Unfortunately I don't have a test or anything; this is behavior that we've only discovered in prod. There's a lot of work we have planned make this more easily debuggable.