Skip to content

refactor(e2e_test): fix smg ci e2e test code quality#16664

Merged
slin1237 merged 3 commits intomainfrom
smg-ci-n/17
Jan 7, 2026
Merged

refactor(e2e_test): fix smg ci e2e test code quality#16664
slin1237 merged 3 commits intomainfrom
smg-ci-n/17

Conversation

@slin1237
Copy link
Copy Markdown
Collaborator

@slin1237 slin1237 commented Jan 7, 2026

  • Extract WorkerInfo construction to helper in gateway.py
  • Add error handling for subprocess.Popen in benchmarks/conftest.py
  • Fix silent encoding error risk in gpu_allocator.py
  • Move MMLU_DATASET_URL to simple_eval_mmlu.py
  • Extract magic numbers to constants (MAX_RETRY_ATTEMPTS, LOG_SEPARATOR_WIDTH)
  • Centralize health check in router_manager.py (use process_utils)

Checklist

Review Process

  1. Ping Merge Oncalls to start the PR flow. See the PR Merge Process.
  2. Get approvals from CODEOWNERS and other reviewers.
  3. Trigger CI tests with comments (/tag-run-ci-label, /rerun-failed-ci, /tag-and-rerun-ci) or contact authorized users to do so.
  4. After green CI and required approvals, ask Merge Oncalls to merge.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @slin1237, 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 focuses on enhancing the code quality, robustness, and maintainability of the end-to-end (e2e) test suite. It introduces several refactorings, including improved error handling for external process execution, safer string decoding, extraction of common logic into helper functions, and the centralization of configuration constants and utility functions. These changes aim to make the e2e tests more reliable, easier to understand, and simpler to modify in the future.

Highlights

  • Code Quality Refactoring: Extracted the WorkerInfo construction logic into a dedicated helper method within gateway.py to improve code reusability and readability.
  • Robustness Improvement: Added comprehensive error handling for subprocess.Popen calls in benchmarks/conftest.py to gracefully manage FileNotFoundError, PermissionError, and general OSError.
  • Encoding Error Prevention: Mitigated a potential silent encoding error risk in gpu_allocator.py by specifying errors='replace' when decoding byte strings.
  • Constant Centralization: Moved the MMLU_DATASET_URL constant to simple_eval_mmlu.py, its primary usage location, and extracted 'magic numbers' like MAX_RETRY_ATTEMPTS and LOG_SEPARATOR_WIDTH into infra/constants.py for better maintainability.
  • Health Check Centralization: Centralized the health check mechanism in router_manager.py by utilizing a shared wait_for_health utility, removing redundant _wait_health implementations.

🧠 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 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.

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

  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.

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 introduces a series of valuable refactorings and code quality improvements to the e2e test suite. The changes, such as extracting magic numbers to constants, centralizing the health check logic, and adding robust error handling for subprocesses, significantly enhance the maintainability and reliability of the code. However, I've identified one critical issue where the removal of an import will lead to a runtime error. Please see the specific comment for details.

Comment thread sgl-model-gateway/e2e_test/fixtures/router_manager.py
- Extract WorkerInfo construction to helper in gateway.py
- Add error handling for subprocess.Popen in benchmarks/conftest.py
- Fix silent encoding error risk in gpu_allocator.py
- Move MMLU_DATASET_URL to simple_eval_mmlu.py
- Extract magic numbers to constants (MAX_RETRY_ATTEMPTS, LOG_SEPARATOR_WIDTH)
- Centralize health check in router_manager.py (use process_utils)
…logging

- Each prefill worker now gets its own bootstrap port (was incorrectly shared)
- Add stdout/stderr logging when genai-bench fails or produces no results
- This fixes PD benchmark test failures introduced in e432057
The time module is still used by add_worker and remove_worker methods.
@slin1237 slin1237 merged commit 55b7936 into main Jan 7, 2026
52 of 61 checks passed
@slin1237 slin1237 deleted the smg-ci-n/17 branch January 7, 2026 14:59
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.

1 participant