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

grpc / grpc-java / 19984
89%

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

pending completion
19984

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

Jobs
ID Job ID Ran Files Coverage
1 19984.1 (GRADLE_OPTS=-Xmx512m LDFLAGS=-L/tmp/protobuf/lib CXXFLAGS=-I/tmp/protobuf/include LD_LIBRARY_PATH=/tmp/protobuf/lib) 28 Sep 2020 08:55PM UTC 0
86.64
Travis Job 19984.1
Source Files on build 19984
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #19984
  • 2adeff56 on github
  • Prev Build on master (#19979)
  • Next Build on master (#19986)
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