• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

grpc / grpc-java / #20136
89%

Build:
DEFAULT BRANCH: master
Ran 06 Jan 2026 05:39AM UTC
Jobs 1
Files 627
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

06 Jan 2026 05:27AM UTC coverage: 88.693% (+0.01%) from 88.681%
#20136

push

github

web-flow
core: Implement oobChannel with resolvingOobChannel

The most important part of this change is to ensure that CallCredentials
are not propagated to the OOB channel. Because the authority of the OOB
channel doesn't match the parent channel, we must ensure that any bearer
tokens are not sent to the different server. However, this was not a
problem because resolvingOobChannel has the same constraint. (RLS has a
different constraint, but we were able to let RLS manage that itself.)

This commit does change the behavior of channelz, shutdown, and metrics
for the OOB channel. Previously the OOB channel was registered with
channelz, but it is only a TODO for resolving channel. Channel shutdown
no longer shuts down the OOB channel and it no longer waits for the OOB
channel to terminate before becoming terminated itself. That is also a
pre-existing TODO. Since ManagedChannelImplBuilder is now being used,
global configurators and census are enabled. The proper behavior here is
still being determined, but we would want it to be the same for
resolving OOB channel and OOB channel.

The OOB channel used to refresh the name resolution when the subchannel
went IDLE or TF. That is an older behavior from back when regular
subchannels would also cause the name resolver to refresh. Now-a-days
that goes though the LB tree. gRPC-LB already refreshes name resolution
when its RPC closes, so no longer doing it automatically should be fine.

balancerRpcExecutorPool no longer has its lifetime managed by the child.
It'd be easiest to not use it at all from OOB channel, which wouldn't
actually change the regular behavior, as channels already use the same
executor by default. However, the tests are making use of the executor
being injected, so some propagation needs to be preserved.

Lots of OOB channel tests were deleted, but these were either testing
OobChannel, which is now gone, or things like channelz, which are known
to no longer work like before.

35361 of 39869 relevant lines covered (88.69%)

0.89 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
96.25
-0.27% ../core/src/main/java/io/grpc/internal/InternalSubchannel.java
1
98.75
-0.07% ../core/src/main/java/io/grpc/internal/PickFirstLoadBalancer.java
1
87.88
-3.03% ../netty/src/main/java/io/grpc/netty/ClientTransportLifecycleManager.java
1
96.55
-0.57% ../xds/src/main/java/io/grpc/xds/client/LoadReportClient.java
2
93.07
-0.14% ../okhttp/src/main/java/io/grpc/okhttp/OkHttpClientTransport.java
3
92.38
-0.95% ../xds/src/main/java/io/grpc/xds/client/ControlPlaneClient.java
3
88.89
-2.56% ../xds/src/main/java/io/grpc/xds/LeastRequestLoadBalancer.java
4
89.36
5.05% ../rls/src/main/java/io/grpc/rls/RlsLoadBalancer.java
7
76.54
2.43% ../core/src/main/java/io/grpc/internal/AutoConfiguredLoadBalancerFactory.java
7
97.96
0.23% ../core/src/main/java/io/grpc/internal/PickFirstLeafLoadBalancer.java
46
89.49
-0.3% ../grpclb/src/main/java/io/grpc/grpclb/GrpclbState.java
55
93.21
-0.24% ../core/src/main/java/io/grpc/internal/ManagedChannelImpl.java
Jobs
ID Job ID Ran Files Coverage
1 #20136.1 06 Jan 2026 05:39AM UTC 627
88.69
Source Files on build #20136
  • Tree
  • List 627
  • Changed 14
  • Source Changed 0
  • Coverage Changed 14
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #20136
  • 3915d029 on github
  • Prev Build on master
  • Next Build on master
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc