Skip to content

MPP routing appears to create significantly more shards than is required #3717

Open
@MaxFangX

Description

@MaxFangX

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.

@valentinewallace

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions