-
Notifications
You must be signed in to change notification settings - Fork 2.2k
multi: disable postgres db timeout setting #10478
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
base: master
Are you sure you want to change the base?
Conversation
Force db.postgres.timeout to always be 0 (disabled) as LND currently does not properly retry when timeout errors occur. Any user-provided non-zero timeout value will be overridden to 0 with a warning logged. This is a temporary measure until proper retry logic is implemented for postgres timeout errors. Once the retry mechanism is fixed, this restriction can be removed to allow users to configure timeouts again.
Summary of ChangesHello @ziggie1984, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request implements a temporary fix to prevent LND from encountering issues with Postgres database connection timeouts. It disables the Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request disables the db.postgres.timeout setting by forcing it to 0. This is a temporary workaround because LND does not currently handle Postgres timeout errors with proper retry logic. The changes include updating documentation in docs/postgres.md and sample-lnd.conf to reflect this, and adding logic in sqldb/config.go to override any user-provided timeout with a warning. The changes are correct and well-documented. I have one minor suggestion to improve the formatting of the warning message to better align with the project's style guide.
| log.Warnf("db.postgres.timeout is not supported and will be "+ | ||
| "ignored. LND does not properly retry on timeout "+ | ||
| "errors, so timeout is always set to 0 (disabled).") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While the log message is clear, its formatting can be improved to better align with the style guide, which prefers minimizing lines for log messages. You can combine the string concatenations to make this warning a two-line statement instead of three.
| log.Warnf("db.postgres.timeout is not supported and will be "+ | |
| "ignored. LND does not properly retry on timeout "+ | |
| "errors, so timeout is always set to 0 (disabled).") | |
| log.Warnf("db.postgres.timeout is not supported and will be "+ | |
| "ignored. LND does not properly retry on timeout errors, so "+ | |
| "timeout is always set to 0 (disabled).") |
References
- The style guide suggests minimizing lines for log and error messages. The current implementation splits the log message string across three lines, which could be condensed to two for better readability and conciseness. (link)
Force db.postgres.timeout to always be 0 (disabled) as LND currently
does not properly retry when timeout errors occur. Any user-provided
non-zero timeout value will be overridden to 0 with a warning logged.
This is a temporary measure until proper retry logic is implemented for
postgres timeout errors. Once the retry mechanism is fixed, this
restriction can be removed to allow users to configure timeouts again.