Skip to content

RT-1.51: Fix test hang by replacing gnmi.Get with gnmi.Lookup in Watch callback#5350

Open
jjw-a-0617 wants to merge 1 commit into
openconfig:mainfrom
jjw-a-0617:rt_1_51
Open

RT-1.51: Fix test hang by replacing gnmi.Get with gnmi.Lookup in Watch callback#5350
jjw-a-0617 wants to merge 1 commit into
openconfig:mainfrom
jjw-a-0617:rt_1_51

Conversation

@jjw-a-0617
Copy link
Copy Markdown
Contributor

gnmi.Get inside a Watch callback calls t.Fatal on missing data, which kills the Watch goroutine and leaves Await() blocked forever.

Use gnmi.Lookup instead so a missing NHG returns false rather than fataling.

@jjw-a-0617 jjw-a-0617 requested a review from a team as a code owner April 17, 2026 00:26
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, 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 a test hang issue in the BGP multipath ECMP test suite. By switching from a strict retrieval method to a lookup-based approach within the Watch callback, the test now correctly handles missing data scenarios without triggering a fatal error that would otherwise block the execution flow.

Highlights

  • Test Stability Improvement: Replaced gnmi.Get with gnmi.Lookup in the Watch callback to prevent test hangs caused by fatal errors on missing data.
  • Error Handling: Added explicit checks for the presence of the NextHopGroup to gracefully handle cases where data is not yet available, preventing the Watch goroutine from terminating prematurely.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@OpenConfigBot
Copy link
Copy Markdown

OpenConfigBot commented Apr 17, 2026

Pull Request Functional Test Report for #5350 / 3459f3c

Virtual Devices

Device Test Test Documentation Job Raw Log
Arista cEOS status
RT-1.51: BGP multipath ECMP
Cisco 8000E status
RT-1.51: BGP multipath ECMP
Cisco XRd status
RT-1.51: BGP multipath ECMP
Juniper ncPTX status
RT-1.51: BGP multipath ECMP
Nokia SR Linux status
RT-1.51: BGP multipath ECMP
Openconfig Lemming status
RT-1.51: BGP multipath ECMP

Hardware Devices

Device Test Test Documentation Raw Log
Arista 7808 status
RT-1.51: BGP multipath ECMP
Cisco 8808 status
RT-1.51: BGP multipath ECMP
Juniper PTX10008 status
RT-1.51: BGP multipath ECMP
Nokia 7250 IXR-10e status
RT-1.51: BGP multipath ECMP

Help

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a 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 updates the BGP multipath ECMP test to use gnmi.Lookup instead of gnmi.Get when retrieving next-hop group information. This change introduces explicit checks for the presence of the next-hop group, improving error handling by returning early or logging a specific error message when the data is missing. I have no feedback to provide.

…h callback

gnmi.Get inside a Watch callback calls t.Fatal on missing data,
which kills the Watch goroutine and leaves Await() blocked forever.

Use gnmi.Lookup instead so a missing NHG returns false rather than fataling.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants