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

grpc / grpc-java
89%

Build:
DEFAULT BRANCH: master
Repo Added 08 Aug 2015 12:58AM UTC
Files 630
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

LAST BUILD ON BRANCH master
branch: master
CHANGE BRANCH
x
Reset
  • master
  • LoadStatsData
  • android
  • creamsoup-patch-1
  • creamsoup-patch-2
  • dapengzhang0-patch-1
  • dapengzhang0-patch-2
  • dependabot/maven/examples/example-gauth/junit-junit-4.13.1
  • dependabot/maven/examples/example-hostname/junit-junit-4.13.1
  • dependabot/maven/examples/example-jwt-auth/junit-junit-4.13.1
  • expose-census-interceptors
  • fault-inject-interop-test
  • fix-server-builder-javadoc
  • java_qps_take_two
  • jcenter-shutdown
  • jtattermusch-patch-1
  • kannanjgithub-patch-1
  • prevents-exception-allocation-on-channel-shutdown
  • ran-su-patch-1
  • releasing-internal-steps
  • remove-netty-min-buffer-size
  • revert-12063-server_feature_resource_timer
  • revert-12099-backport-1.71-xds_http_connect
  • revert-4813-mvn-google-mirror
  • revert-6233-v1.24.x
  • revert-7720-delayed-stream
  • revert-7799-interop-test
  • tweaking_java_qpsworker
  • typo
  • updates-retry-behavior-for-redefinition-in-A6
  • v0.12.x
  • v0.13.0
  • v0.13.1
  • v0.13.2
  • v0.13.x
  • v0.14.0
  • v0.14.1
  • v0.14.x
  • v0.15.0
  • v0.15.x
  • v0.8.x
  • v0.9.x
  • v1.0.0
  • v1.0.0-pre1
  • v1.0.0-pre2
  • v1.0.2
  • v1.0.3
  • v1.0.x
  • v1.1.0
  • v1.1.1
  • v1.1.2
  • v1.1.x
  • v1.10.0
  • v1.10.1
  • v1.10.x
  • v1.11.0
  • v1.11.x
  • v1.15.0
  • v1.15.1
  • v1.15.x
  • v1.16.0
  • v1.16.1
  • v1.16.x
  • v1.17.0
  • v1.17.1
  • v1.17.2
  • v1.17.x
  • v1.18.0
  • v1.18.x
  • v1.19.0
  • v1.19.x
  • v1.2.0
  • v1.2.x
  • v1.20.0
  • v1.20.x
  • v1.21.0
  • v1.21.x
  • v1.22.0
  • v1.22.1
  • v1.22.3
  • v1.22.x
  • v1.23.1
  • v1.23.x
  • v1.24.0
  • v1.24.1
  • v1.24.2
  • v1.24.x
  • v1.25.0
  • v1.25.x
  • v1.26.0
  • v1.26.1
  • v1.26.x
  • v1.27.0
  • v1.27.1
  • v1.27.2
  • v1.27.x
  • v1.28.0
  • v1.28.1
  • v1.28.x
  • v1.29.0
  • v1.29.x
  • v1.3.x
  • v1.30.0
  • v1.30.1
  • v1.30.2
  • v1.30.x
  • v1.31.0
  • v1.31.1
  • v1.31.2
  • v1.31.x
  • v1.32.0
  • v1.32.1
  • v1.32.2
  • v1.32.3
  • v1.32.x
  • v1.33.0
  • v1.33.1
  • v1.33.x
  • v1.34.0
  • v1.34.1
  • v1.34.x
  • v1.35.0
  • v1.35.1
  • v1.35.x
  • v1.36.0
  • v1.36.1
  • v1.36.2
  • v1.36.x
  • v1.37.0
  • v1.37.1
  • v1.37.x
  • v1.38.0
  • v1.38.x
  • v1.4.0
  • v1.4.x
  • v1.5.0
  • v1.5.x
  • v1.55.x
  • v1.56.x
  • v1.57.x
  • v1.58.x
  • v1.59.x
  • v1.6.1
  • v1.6.x
  • v1.60.x
  • v1.61.x
  • v1.62.x
  • v1.63.x
  • v1.64.x
  • v1.65.x
  • v1.66.x
  • v1.67.x
  • v1.68.x
  • v1.69.x
  • v1.7.1
  • v1.7.x
  • v1.70.x
  • v1.71.x
  • v1.72.x
  • v1.73.x
  • v1.74.x
  • v1.75.x
  • v1.76.x
  • v1.77.x
  • v1.78.x
  • v1.79.x
  • v1.8.0
  • v1.8.x
  • v1.80.x
  • v1.9.0
  • v1.9.1
  • v1.9.x
  • xds-demo
  • xds-interop-test
  • xds-k8s-cluster-override
  • xds-k8s-public-preview-ready-cluster
  • xds-k8s-switch-cluster
  • xds-k8s-timeout
  • xds-resolver-routing-config
  • xds-server-channelz
  • xds-staging
  • zhangkun83-patch-1
  • zpencer/proxy_auth_rebase

16 Mar 2026 05:51PM UTC coverage: 88.694% (+0.005%) from 88.689%
#20197

push

github

web-flow
xds: reuse GrpcXdsTransport and underlying gRPC channel to the same xDS server by ref-counting

This PR implements reusing the gRPC xDS transport (and underlying gRPC
channel) to the same xDS server by ref-counting, which is already
implemented in gRPC C++
([link](https://github.com/grpc/grpc/blob/5a3a5d531/src/core/xds/grpc/xds_transport_grpc.cc#L399-L414))
and gRPC Go
([link](https://github.com/grpc/grpc-go/blob/81c7924ec/internal/xds/clients/grpctransport/grpc_transport.go#L78-L120)).
This optimization is expected to reduce memory footprint of the xDS
management server and xDS enabled clients as channel establishment and
lifecycle management of the connection is expensive.

* Implemented a map to store `GrpcXdsTransport` instances keyed by the
`Bootstrapper.ServerInfo` and each `GrpcXdsTransport` has a ref count.
Note, the map cannot be simply keyed by the xDS server address as the
client could have different channel credentials to the same xDS server,
which should be counted as different transport instances.
* When `GrpcXdsTransportFactory.create()` is called, the existing
transport is reused if it already exists in the map and increment its
ref count, otherwise create a new transport, store it in the map, and
increment its ref count.
* When `GrpcXdsTransport.shutdown()` is called, its ref count is
decremented and the underlying gRPC channel is shut down when its ref
count reaches zero.
* Note this ref-counting of the `GrpcXdsTransport` is different and
orthogonal to the ref-counting of the xDS client keyed by the xDS server
target name to allow for xDS-based fallback per [gRFC
A71](https://github.com/grpc/proposal/blob/master/A71-xds-fallback.md).

Prod risk level: Low
* Reusing the underlying gRPC channel to the xDS server would not affect
the gRPC xDS (ADS/LRS) streams which would be multiplexed on the same
channel, however, this means new xDS (ADS/LRS) streams and RPCs may fail
due ... (continued)

35473 of 39995 relevant lines covered (88.69%)

0.89 hits per line

Relevant lines Covered
Build:
Build:
39995 RELEVANT LINES 35473 COVERED LINES
0.89 HITS PER LINE
Source Files on master
  • Tree
  • List 630
  • Changed 8
  • Source Changed 0
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
#20197 master xds: reuse GrpcXdsTransport and underlying gRPC channel to the same xDS server by ref-counting This PR implements reusing the gRPC xDS transport (and underlying gRPC channel) to the same xDS server by ref-counting, which is already implemented in... push 16 Mar 2026 06:03PM UTC web-flow github
88.69
#20196 master Cleanup old checkForUpdates restrictions (#12687) f36defa2d upgraded error_prone_annotations and 4de471891 bumped minSdkVersion for android-interop-testing. push 16 Mar 2026 06:01PM UTC web-flow github
88.69
#20195 master android-interop-testing: Workaround build mergeExtDexDebug race (#12697) 4de471891 upgraded android-interop-testing to SDK version 23, but this had previously been avoided because it triggered a Gradle or AGP bug. The race happened to not trigger... push 16 Mar 2026 07:50AM UTC web-flow github
88.69
#20194 master android-interop-testing: replace deprecated classes (#12689) push 15 Mar 2026 08:10PM UTC web-flow github
88.7
#20193 master android-interop-testing: replace deprecated classes (#12689) push 12 Mar 2026 02:32PM UTC web-flow github
88.7
#20192 master Remove InternalResolutionResult from DnsNameResolver The internal result was needed before 90d0fabb1 allowed addresses to fail yet still provide attributes and service config. Now the code can just use the regular API. This does cause a behavior... push 12 Mar 2026 12:52PM UTC ejona86 github
88.69
#20191 master core: Enable dns "caching" on Android DnsNameResolver discards refresh requests if it has been too soon after the last refresh, because the result is assumed to be identical to the previous fetch. Android itself will adhere to the RR's TTL, so re... push 11 Mar 2026 05:31PM UTC ejona86 github
88.67
#20190 master android-interop-testing: Remove usage of MultiDexApplication Since we're only supporting API levels 23+, all the supported Android versions handle multidex natively, and without any bugs to workaround. Also bump some minSdkVersion that didn't ge... push 10 Mar 2026 10:44PM UTC web-flow github
88.69
#20189 master core: Wait for backoff timer on address update in pick_first The backoff timer is only used when serializeRetries=true, and that exists to match the old/current pick_first's behavior as closely as possible. InternalSubchannel.updateAddresses() wo... push 09 Mar 2026 04:31PM UTC web-flow github
88.7
#20188 master remove checked-in protoc zip (#12675) push 08 Mar 2026 08:08PM UTC web-flow github
88.69
See All Builds (17216)
  • Repo on GitHub
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