workaround for signal during grpc test framework teardown - #1691
Conversation
Tests themselves pass, but something in the teardown of the test framework does a double free. Unblock CI while we search for the root cause.
📝 WalkthroughWalkthroughThe integration test now bypasses post-test teardown with ChangesPost-teardown crash handling
Estimated code review effort: 3 (Moderate) | ~20 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@ci/utils/junit_helpers.py`:
- Around line 54-60: Update xml_all_passed with the requested type annotations,
using xml_path: str and -> bool. Expand its docstring to document the xml_path
parameter, the conditions for returning True, and that file or XML parsing
errors return False.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 10b14469-f02d-4d95-95d8-6683c1ee57ee
📒 Files selected for processing (3)
ci/run_ctests.shci/utils/junit_helpers.pycpp/tests/linear_programming/grpc/grpc_integration_test.cpp
| def xml_all_passed(xml_path): | ||
| """Return True if XML parses, has >=1 testcase, and no failure/error nodes. | ||
|
|
||
| Used to detect post-RUN_ALL_TESTS teardown crashes: gtest writes XML in | ||
| OnTestIterationEnd before main returns, so a complete all-green XML plus | ||
| a later SIGABRT means the crash was during static/atexit destruction. | ||
| """ |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -eu
printf '%s\n' '--- file outline ---'
ast-grep outline ci/utils/junit_helpers.py
printf '%s\n' '--- relevant source ---'
cat -n ci/utils/junit_helpers.py | sed -n '1,130p'
printf '%s\n' '--- usages and declarations ---'
rg -n -C 3 'xml_all_passed|all-passed' ci .github 2>/dev/null || true
printf '%s\n' '--- repository lint/config references ---'
rg -n -C 2 'ruff|mypy|pyright|pylint|pydocstyle|type.?check' pyproject.toml setup.cfg tox.ini .pre-commit-config.yaml Makefile ci 2>/dev/null || trueRepository: NVIDIA/cuopt
Length of output: 29103
Add type annotations and API documentation for xml_all_passed.
Use xml_path: str and -> bool. Document the parameter, return conditions, and that parse or file errors return False.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@ci/utils/junit_helpers.py` around lines 54 - 60, Update xml_all_passed with
the requested type annotations, using xml_path: str and -> bool. Expand its
docstring to document the xml_path parameter, the conditions for returning True,
and that file or XML parsing errors return False.
Source: Coding guidelines
CI Test Summary✅ All 31 test job(s) passed. |
Tests themselves pass, but something in the teardown of the test framework does a double free. Unblock CI while we search for the root cause.
Best guess is something in the gRPC/abseil stack. Will investigate separately.