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

grpc / grpc-java / 19984 / 1
89%
master: 89%

Build:
DEFAULT BRANCH: master
Ran 28 Sep 2020 08:55PM UTC
Files 395
Run time 44s
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

28 Sep 2020 08:43PM UTC coverage: 86.64% (-0.1%) from 86.762%
GRADLE_OPTS=-Xmx512m LDFLAGS=-L/tmp/protobuf/lib CXXFLAGS=-I/tmp/protobuf/include LD_LIBRARY_PATH=/tmp/protobuf/lib

push

travis-ci

web-flow
xds: refactor resource subscription implementation in XdsClient (#7458)

Introduce ResourceSubscriber for tracking the state of a single resource.

Every time newly subscribing to some resource, a corresponding ResourceSubscriber is created. Note it does not control the resource discovery RPCs. It is still the XdsClient that sends RPCs for with all subscribed resource names for each type. A ResourceSubscriber can have the following states:

  - When the initial resource fetch timer (respTimer) is pending, the resource is under discovery, the resource data is unknown. Even if the XdsClient receives a response not containing the corresponding resource, it does not mean the resource is absent. We still need to wait until a response containing the resource data coming or the timer being fired. The timer is scheduled when the ResourceSubscriber is created. So the XdsClient should always create the corresponding ResourceSubscriber when it starts to subscribe a new resource.

  - If the resource fetch timer is not pending, we must know the existence of the resource data. If data field is set, it is the most recently received resource data (aka, cached entry). Otherwise, absent field is set to true, indicating the resource does not exist. The exceptional case is when the ADS stream is closed and in the retry backoff period. During that period, respTimer is cancelled and the resource existence may or may not be known. Once the backoff finishes, the XdsClient will reschedule the respTimer when it recreates the ADS stream and re-request all the resources.

Watchers can be added to existing ResourceSubscribers. At the time the watcher is added, its callback will be invoked if we've already known the existence of the resource. Otherwise, the watcher will just sit there and wait data or absence to come in the future.

24292 of 28038 relevant lines covered (86.64%)

0.87 hits per line

Source Files on job 19984.1 (GRADLE_OPTS=-Xmx512m LDFLAGS=-L/tmp/protobuf/lib CXXFLAGS=-I/tmp/protobuf/include LD_LIBRARY_PATH=/tmp/protobuf/lib)
  • Tree
  • List 0
  • Changed 5
  • Source Changed 2
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 16722
  • Travis Job 19984.1
  • 2adeff56 on github
  • Prev Job for GRADLE_OPTS=-Xmx512m LDFLAGS=-L/tmp/protobuf/lib CXXFLAGS=-I/tmp/protobuf/include LD_LIBRARY_PATH=/tmp/protobuf/lib on master (#19979.1)
  • Next Job for GRADLE_OPTS=-Xmx512m LDFLAGS=-L/tmp/protobuf/lib CXXFLAGS=-I/tmp/protobuf/include LD_LIBRARY_PATH=/tmp/protobuf/lib on master (#19986.1)
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