Add defensive guard to make some tests less flaky and panic less

pull/16305/head
Andrew Stucki 2023-02-17 12:14:39 -05:00
parent 8dab825c36
commit 01ca6e268b
2 changed files with 11 additions and 0 deletions

View File

@ -47,6 +47,13 @@ type ADSDeltaStream = envoy_discovery_v3.AggregatedDiscoveryService_DeltaAggrega
// DeltaAggregatedResources implements envoy_discovery_v3.AggregatedDiscoveryServiceServer
func (s *Server) DeltaAggregatedResources(stream ADSDeltaStream) error {
// this guard is mainly for our tests where we sometimes nil out the
// server stream, any use of the stream after we nil it causes
// pretty much all of the below code to panic.
if stream == nil {
return nil
}
defer s.activeStreams.Increment(stream.Context())()
// a channel for receiving incoming requests

View File

@ -227,6 +227,10 @@ func (e *TestEnvoy) Close() error {
// unblock the recv chans to simulate recv errors when client disconnects
if e.deltaStream != nil && e.deltaStream.recvCh != nil {
close(e.deltaStream.recvCh)
// TODO: This is causing a bunch of panics in testing code due to inflight
// requests attempting to grab a context from a stream that's nil. Added
// some defensive code in the xDS handler, but really, this should get fixed
// so we no longer have a data-race
e.deltaStream = nil
}
if e.cancel != nil {