-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Fix flaky watchtower and invoice tests #10464
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
Increase the test timeout from 10s to 60s to accommodate slow Postgres database setup and migrations when running tests in parallel. This prevents false-positive test failures on slower CI runners.
Summary of ChangesHello @gijswijs, 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 addresses and resolves several intermittent test failures within the watchtower client and invoice test suites. It specifically targets race conditions in watchtower tests by introducing better synchronization mechanisms and enhances the robustness of invoice tests by extending their timeout period, leading to more reliable and stable test results across various environments. 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 addresses flaky tests in the watchtower and invoice packages. The changes involve increasing a test timeout to handle slow database setups, and adding proper synchronization mechanisms (a channel for signaling and a predicate loop for retries) to fix race conditions in watchtower tests. The fixes are logical and well-implemented. I have one minor suggestion regarding code style to improve readability.
This commit fixes two flaky test scenarios: 1. testRemoveLockedAddr: Add synchronization to wait for the dial to start before asserting that the address is locked. Previously, the test could race and check the lock state before session negotiation began. 2. testTowerSwitch: Use wait.Predicate for RemoveTower since the address may still be locked by an active session, causing intermittent failures.
79d3dcf to
1bac155
Compare
Description
This PR addresses intermittent test failures in the watchtower client and invoice test suites.
Changes
Two test scenarios had race conditions causing flaky failures:
testRemoveLockedAddr: Added synchronization via a
dialStartedchannel to ensure the dial has begun before asserting that an address is locked. Previously, the test could check the lock state before session negotiation started.testTowerSwitch: Wrapped
RemoveTowerinwait.Predicatesince the address may still be locked by an active session, causing intermittent failures.Finally, the test timeout for
invoicesfrom is increased from 10s to 60s to accommodate slow Postgres database setup and migrations when running tests in parallel. This prevents false-positive failures on slower CI runners.