lightningnetwork / lnd

Lightning Network Daemon ⚡️
MIT License
7.64k stars 2.08k forks source link

[bug]: channel marked as zombie on neutrino node when it works on regular node #7679

Open kevkevinpal opened 1 year ago

kevkevinpal commented 1 year ago

Background

I have 4 nodes node1 (neutrino) node2 (neutrino) node3 (routing full bitcoind node) node4 (full bitcoind node)

When trying to pay an invoice from (node4) -> (node3) -> (node2) it works

but paying from (node1) -> (node3) -> (node2) it fails

On node1 I run lncli getchaninfo <node2 chan id> and I get [lncli] rpc error: code = Unknown desc = edge marked as zombie

when I run the same command on node2 and node3 I get a valid response

is there a way to manually mark a channel id as not a zombie channel as the channel works. I've tried peering directly with the node still no luck

Your environment

Steps to reproduce

Not exactly sure other than running two nodes in neutrino and one with a full bitcoind but its not certain that it would make the channel marked as zombie

Expected behaviour

I should be able to pay the invoice as normal

Actual behaviour

I get Payment status: FAILED, reason: FAILURE_REASON_NO_ROUTE

bitromortac commented 1 year ago

Could you post the exact versions you are running? It would also make sense to upgrade to 0.16.2 before continuing to debug. What's the status of lncli getinfo synced_to_graph of node 1? lncli getnetworkinfo output would be useful as well.

Channels are usually marked as zombie channels if their funding transaction doesn't exist onchain when a channel announcement is received (but this can't happen for neutrino nodes as they don't validate the funding tx). Another way a channel is marked as a zombie is if it gets deleted from the graph (if a closing transaction was found).

Zombie channels can get into a live state again when a zombie update is processed. You could try to set a different fee for the channel (on both nodes 2 and 3), using lncli updatechanpolicy. But I guess the channel would only be added to the graph if also the channel announcement is resent (which probably won't happen). So ultimately not sure why this channel is the zombie state.

kevkevinpal commented 1 year ago

weridly after opening another channel it shows up on node1 but the other channels between node2 and node3 are still marked as zombie

yup will update to v0.16.2