-
Notifications
You must be signed in to change notification settings - Fork 911
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
Improvement: fail fast if the Bitcoin backend fails #3571
Comments
Why not fold this into #3213? Make Then to replace any builtin plugin we make it non-crucial and suppress loading it and then make a new crucial plugin, e.g. |
A couple of weeks ago, I discovered that my Lightning node had not been interacting with the blockchain for over a day because |
Some logs would be very welcome as we would die on the next request (every 30s at most) if the connection to |
If it ever happens again, I'll have logs to submit, as I'm now running |
It happened again. Here's an abbreviated process tree.
(I have hundreds of Of note is the
That's the last
There are no messages containing My I do see exactly two groups of memory-related messages like this:
So clearly my system was running low on available memory this morning. (I was compiling Chromium overnight, which is what triggered the OOM killer on my Maybe it's possible that the I am going to restart my C-Lightning now, but I can grep my log for anything you want. |
Could you grep for |
Anyhow this happened, I think we should register SIGSHLD and die if |
@darosior: Here's a grep of the log from midnight (well before the failure) until I restarted C-Lightning.
|
@darosior: How do you not get a |
Thanks for the logs. That's what I wonder we should have tried to send a request to |
@darosior: Logs, compressed with xz, encrypted using GPG with a symmetric cipher (passphrase emailed to you), then encoded using base64 because GitHub doesn't allow attachments of arbitrary content type: lightningd-redacted.log.xz.gpg.base64.txt Edit: Just realized I could probably have obtained your GPG public key and used that instead of a shared secret. Oops. |
Ok so we effectively seem to have stopped polling for feerates just before
|
This is already the case for |
What would have happened if this sequence of events had occurred?:
Does If
I'm not keen to restart my C-Lightning more often than necessary, as it is a high-volume production node and I'd prefer to keep service disruptions to a minimum. I also prefer not to run release candidates for the same reason. I am leery of increasing the |
It dies, and
I understand. I hope you won't have another resource exhaustion before next week :-) |
When would the next request occur if the polling timer has not been re-armed? Would it occur if |
By the way, it'd be really cool if the log level could be changed on the fly. 😉 |
Never..
Ah, yes. I meant "never for the fees and block chain updates"
Polling with
One for the fees, one for the topology (chain)
Yeah ! I also personally ran into this willing regarding my nodes :-) |
So I think in my case, both polling timers must have been affected, presumably because Thanks for the insight. |
Yeah, that's this strange perfect synchronicity that made me bug. In addition this happened two times in a row ! |
@darosior: Maybe you should log (at the |
Hmm I thought about adding this to the PR but this seemed overkill as we already log in the callback and we won't see this behaviour again as we now die as soon as bcli dies.
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
Le mardi, avril 28, 2020 5:50 PM, Matt Whitlock <[email protected]> a écrit :
… ***@***.***(https://github.com/darosior): Maybe you should log (at the DEBUG level) when the timers fire.
—
You are receiving this because you were mentioned.
Reply to this email directly, [view it on GitHub](#3571 (comment)), or [unsubscribe](https://github.com/notifications/unsubscribe-auth/AFLK3F5RCVHD3SW5O5EH7OTRO33L7ANCNFSM4LCMHUSA).
|
I think we can close this, it was solved by #3675 . |
#3565 introduces a timeout to not wait the Bitcoin backend's response to the
init
message for ever.As an improvement, it would be nice to fail directly if the plugin dies.
It could be a good first issue ?
In this case some hints:
The Bitcoin backend plugin will signal its readiness by completing the handshake with
lightningd
. This handshake is completed by responding to theinit
message.If the plugin dies for whatever reason (for example
bcli
cannot connect tobitcoind
), the connection will be dropped andplugin_conn_finished
will be called:lightning/lightningd/plugin.c
Lines 435 to 444 in ac5cba2
It frees the plugin struct so maybe an (untested) idea would be to attach a custom destructor to Bitcoin plugins ?
The text was updated successfully, but these errors were encountered: