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

grpc / grpc-java / 22370
89%

Build:
DEFAULT BRANCH: master
Ran 11 Jun 2021 10:08PM UTC
Jobs 1
Files 442
Run time 35s
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
22370

push

travis-ci

web-flow
<a href="https://github.com/grpc/grpc-java/commit/<a class=hub.com/grpc/grpc-java/commit/2cbc7fc3a5b98122cdd67bc881aefa3eef8e1b65">2cbc7fc3a<a href="https://github.com/grpc/grpc-java/commit/2cbc7fc3a5b98122cdd67bc881aefa3eef8e1b65">&quot;&gt;grpclb: skip fallback if the LB is already in fallback mode (#8253)

Manually checks if the gRPCLB policy is already in fallback mode when trying to fallback due to receiving address update without LB addresses. 

Commit </a><a class="double-link" href="https://github.com/grpc/grpc-java/commit/<a class="double-link" href="https://github.com/grpc/grpc-java/commit/b956f8852d36adc54eb60649d7b82896b399d723">b956f8852</a>">b956f8852</a><a href="https://github.com/grpc/grpc-java/commit/2cbc7fc3a5b98122cdd67bc881aefa3eef8e1b65"> added an invariant check in the FallbackModeTask runnable to ensure the task is fired only when the LB is not already in fallback mode. However, that commit missed the case that receiving address updates without LB addresses can trigger the run of FallbackModeTask runnable, because the existing implementation chose to reuse the code in FallbackModeTask. In such case, running FallbackModeTask could break the invariant check as the LB policy may already in fallback mode.

This change eliminates the reuse of FallbackModeTask for handling address update without LB address. That is, every time receiving address update, we manually check if it is already in fallback instead of reusing to FallbackModeTask perform the check.

Note there was a discussion brought up whether we should force entering fallback (shutdown existing subchannels) or we should still keep the balancer connection. Different languages have already diverged on this. Go shuts down the balancer connection and all subchannel connections to force using fallback addresses. C-core keep the balancer connection working and does not shutdown subchannels, only let fallback happens after the existing balancer connection and subchannel connections become broken. Java shuts down the balancer connection but not subchannels. This change does not try to change the existing behavior, but only fixes the invariant check breakage.

-------------------
See bug reported in  b/190700476

27110 of 30737 relevant lines covered (88.2%)

0.88 hits per line

Jobs
ID Job ID Ran Files Coverage
1 22370.1 (GRADLE_OPTS=-Xmx512m LDFLAGS=-L/tmp/protobuf/lib CXXFLAGS=-I/tmp/protobuf/include LD_LIBRARY_PATH=/tmp/protobuf/lib) 11 Jun 2021 10:08PM UTC 0
88.2
Travis Job 22370.1
Source Files on build 22370
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #22370
  • 2cbc7fc3 on github
  • Prev Build on master (#22369)
  • Next Build on master (#22376)
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