Skip to content

interop/orcalb: Delegate SubConn management to pick_first#8914

Open
zarinn3pal wants to merge 2 commits intogrpc:masterfrom
zarinn3pal:feat/interop-orca-to-pf
Open

interop/orcalb: Delegate SubConn management to pick_first#8914
zarinn3pal wants to merge 2 commits intogrpc:masterfrom
zarinn3pal:feat/interop-orca-to-pf

Conversation

@zarinn3pal
Copy link

@zarinn3pal zarinn3pal commented Feb 19, 2026

This PR switches the interop ORCA test load balancer to delegate SubConn management to endpointsharding + pick_first instead of creating and handling SubConns itself As per gRFC A61 .

Fixes #8809

RELEASE NOTES: N/A

@zarinn3pal
Copy link
Author

/gemini review

Copy link
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

The pull request successfully transitions the orcalb interop balancer to delegate SubConn management to endpointsharding and pick_first, resolving the dualstack support issue (#8809) and adhering to gRFC A61. The implementation of the wrapper balancer and the picker logic for ORCA load report handling is solid, and the new tests provide good coverage for failover and OOB reporting scenarios. I identified one potential nil pointer dereference during balancer shutdown that should be addressed.

@codecov
Copy link

codecov bot commented Feb 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.01%. Comparing base (12e91dd) to head (4ab03de).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #8914      +/-   ##
==========================================
- Coverage   83.04%   83.01%   -0.04%     
==========================================
  Files         411      411              
  Lines       32892    32892              
==========================================
- Hits        27316    27306      -10     
- Misses       4181     4189       +8     
- Partials     1395     1397       +2     

see 20 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@easwars easwars added the Type: Internal Cleanup Refactors, etc label Feb 19, 2026
@easwars easwars added this to the 1.80 Release milestone Feb 19, 2026
Copy link
Contributor

@Pranjali-2501 Pranjali-2501 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @zarinn3pal, thankyou for your contribution.

I have some comments, could you please take a look at that.

@zarinn3pal
Copy link
Author

Hi @Pranjali-2501 ,
Thank you for the review. I have addressed the concerns. Can you please have a look into it again?
Thanks

@zarinn3pal
Copy link
Author

/gemini review

Copy link
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 is a significant architectural improvement for the interop ORCA test load balancer. It refactors the balancer to delegate SubConn management to endpointsharding and pick_first, aligning with gRFC A61 and enabling proper dual-stack support. The implementation correctly follows the parent/child balancer pattern, intercepting calls to inject ORCA-specific logic for OOB listeners and picker wrapping. The changes are robust and well-structured. Furthermore, the addition of a comprehensive test suite in orcalb_test.go is excellent, covering various scenarios including multiple addresses, multiple endpoints, and resolver updates. The code quality is high, and I did not find any issues of medium or higher severity.

Copy link
Contributor

@Pranjali-2501 Pranjali-2501 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added few more comments, PTAL.

@zarinn3pal
Copy link
Author

Hi @Pranjali-2501 ,
I have addressed the concerns that you pointed out.Please let me know if anything needs to be changed further?
Thanks

@zarinn3pal zarinn3pal removed their assignment Mar 10, 2026
@easwars easwars assigned zarinn3pal and unassigned Pranjali-2501 Mar 10, 2026
@zarinn3pal zarinn3pal force-pushed the feat/interop-orca-to-pf branch from 5b26eb2 to 70513d4 Compare March 11, 2026 00:58
@zarinn3pal zarinn3pal requested a review from easwars March 11, 2026 01:18
@zarinn3pal zarinn3pal removed their assignment Mar 11, 2026
@easwars
Copy link
Contributor

easwars commented Mar 11, 2026

One of the newly added test is failing. PTAL.

@zarinn3pal
Copy link
Author

/gemini review

Copy link
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 refactors the ORCA test load balancer to delegate SubConn management to endpointsharding and pick_first, which aligns with gRFC A61. The changes are well-structured and the new implementation is much cleaner and follows modern gRPC load balancing patterns. The addition of comprehensive tests in interop/orcalb_test.go is excellent and covers various important scenarios. I've found a couple of potential race conditions during shutdown that could lead to panics. My review includes suggestions to fix these issues.

@zarinn3pal zarinn3pal force-pushed the feat/interop-orca-to-pf branch from 24fc540 to d28bc70 Compare March 18, 2026 16:59
@zarinn3pal
Copy link
Author

/gemini review

Copy link
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 is an excellent refactoring of the interop ORCA test load balancer. It correctly delegates SubConn management to endpointsharding and pick_first, aligning with gRFC A61. The implementation is robust, intercepting NewSubConn to manage OOB listeners and wrapping the child picker to inject ORCA logic for both OOB and per-RPC reports. The addition of a comprehensive test suite in orcalb_test.go is particularly noteworthy, as it covers various important scenarios including fallback behavior, multiple endpoints, and resolver updates, ensuring the new implementation is well-tested. The overall change significantly improves the architecture and is a high-quality contribution.

@zarinn3pal zarinn3pal force-pushed the feat/interop-orca-to-pf branch from d28bc70 to 759c794 Compare March 18, 2026 22:05
@zarinn3pal
Copy link
Author

/gemini review

Copy link
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 refactors the interop ORCA test load balancer to delegate SubConn management to endpointsharding and pick_first, which is a great architectural improvement aligning with gRFC A61. The implementation is solid and includes a comprehensive new test suite. I have one suggestion to improve the clarity and robustness of the orcaPicker logic.

@zarinn3pal zarinn3pal force-pushed the feat/interop-orca-to-pf branch from 759c794 to 5377fb9 Compare March 18, 2026 22:53
@zarinn3pal
Copy link
Author

/gemini review

Copy link
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 refactors the interop ORCA test load balancer to delegate SubConn management to endpointsharding and pick_first, aligning with gRFC A61. The changes are well-implemented and include comprehensive tests for the new architecture, covering scenarios with multiple endpoints, multiple addresses, and endpoint updates. My review found one minor issue related to logging consistency, for which I've provided a suggestion. Overall, this is a solid improvement.

@zarinn3pal zarinn3pal force-pushed the feat/interop-orca-to-pf branch from 5377fb9 to 1f5d68a Compare March 18, 2026 23:20
@zarinn3pal
Copy link
Author

/gemini review

Copy link
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 refactors the interop ORCA test load balancer to delegate SubConn management to endpointsharding and pick_first, aligning with gRFC A61. This is a significant improvement, moving from a simple single-SubConn model to a more robust one that can handle multiple endpoints and addresses correctly. The changes are well-implemented, and the addition of a comprehensive test suite in interop/orcalb_test.go is excellent for ensuring the new logic is sound. I have one suggestion regarding locking in interop/orcalb.go to improve maintainability and avoid potential deadlocks in the future.

@zarinn3pal zarinn3pal force-pushed the feat/interop-orca-to-pf branch from 1f5d68a to ecb5da2 Compare March 19, 2026 13:23
@zarinn3pal zarinn3pal force-pushed the feat/interop-orca-to-pf branch from ecb5da2 to 4ab03de Compare March 19, 2026 13:25
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.

interop/orcalb: Delegate SubConn management to pickfirst

4 participants