-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Identify and log information that might help peers debugging force-close issues #6363
Comments
This might help with ElementsProject/lightning#4649 |
So if your node was the one that force closed, then the issue was actually downstream. Like if you had a channel with Bob, sent an HTLC, then either they or someone else downstream blew up, you'd eventually force close. |
Yes. I'm pretty sure my peer (next hop) didn't blow up. This issue is about providing helpful information so that my peer can figure out what went wrong on their end. I would like lnd to provide users (including myself) some useful information that can be handed to the peer at the other end of the force-closed channel, so that said peer has enough information to investigate the reasons of the force close. My motivation is that there are too many force-closes that shouldn't happen, like the one mentioned in the c-lightning issue above. I don't mind investing time into looking into each and every force-close on my node, but I also see that collaborating with peers is tricky. I don't know what they need to know, and possibly helpful information like the HTLC ID and creation time are hidden from me. |
Agreed, I think one way to start to shuffle around more debug information would be using the Re force closes, one thing that would be interesting to tease out is: the the force closes happening in only one area or the route, or are they actually cascading? You'd expect them to just happen in one area, with the others cancelling HTLCs back in most cases. However a cascade event would indicate some implementation level bug. On our end, we recently fixed an issue where some messages would be lost internally when we go on chain, leading to the incoming channel not immediately cancelling the HTLC: #6250. |
One idea: add a reason/description entry for channels that are (force-)closed, but also in state waiting close, or pending. I'm aware that things might change before the channel is fully closed (breach/punishment being the prime example), which is why this information might need to be updated accordingly. User story: As a node admin I need to have access to this information even while the close is still pending, as waiting (up to 14 days?) for everything to be resolved wastes time that could be spent investigating. |
we definitely need better logging when a channel is force closed |
@BhaagBoseDK see #5324. In here (6363) I'd like to concentrate on information that can be used collaborate with a peer, i.e. this is more than just having better debug logs. |
Should channels really be force-closed in case of trimmed HTLC timeouts? |
Suggestion for the output here: #6615 (comment) |
IMO no, see this issue: #1226 An ideal set up IMO would be: always be 100% economically rational and only go to chain if the fee revenue for going on-chain exceeds the fee revenue plus the HTLC amount. This would also mean mostly not caring about dust HTLCs, since usually you pay more in chain fees to force close then sweep than the amount plus the fees. |
Background
My node just force-closed a channel due to a HTLC that timed out. I'd love to figure out what exactly caused my peer to not fail the HTLC. In order to do this, I'd like to help my peer dig through the logs and find the issue.
What kind of information would I need to send to a peer running lnd? c-lightning? other implementations? Where do I get this information from?
Your environment
lnd
: 0.14.1-betaThe text was updated successfully, but these errors were encountered: