It appears the problem is that server.close() was missing sync(), so the
event loop was still processing the closure when the next test started.
This change is more aggressive than it needs to be, but should make it
less bug-prone.
Fixes#5574
The API review for #6279 came up with a more meaningful name that
better explains the intent. A setter for the old name was left in
ManagedChannelBuilder to ease migration to the new name by current
users.
This change cleans up the definitions of gRPC's data types for envoy's proto messages. These data types carry only information needed for gRPC's logic extracted from envoy's proto messages. Each data type has a static method to convert from its corresponding envoy's proto.
Existing Bootstrapper is an eagerly loaded singleton and reading bootstrap file is done when first time referencing Boostrapper class. This is not use friendly for error propagation.
This change added an instance method Bootstrapper#readBootstrap() for reading the bootstrap file. Instead of making the Bootstrapper instance a singleton, make the bootstrap data (aka, BootstrapInfo) a singleton. Now reading the bootstrap file happens when the first Bootstrapper instance first time calling Bootstrapper#readBootstrap().
Defines an XdsClient interface, which is the blueprint for the class that encapsulates all of the logic for communicating with the xDS server. Also defines watcher interfaces for watching CDS/EDS updates.
Previously, if the remote balancer doesn't close the stream after receiving the half-close, the OOB channel will hang there forever. It's safer to always cancel on the client-side so that the OOB channel can be cleaned up timely, regardless of what the remote balancer does.
* stub: ignore unary response msg if status is not OK
* stub: throw if no msg with OK status
* address the comment, improve tests.
* fix error message
* fix error message
* improve naming of the tests
* call onCompleted on success unary flow
* fix test
* handle errors for delayed unary message sending
* clean up the onCompleted/onError logic
* use hasMessageThat to produce better error message when fail