File tree Expand file tree Collapse file tree 1 file changed +15
-0
lines changed
Expand file tree Collapse file tree 1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -28,6 +28,8 @@ const (
2828 retryMax = 3 // Number of retry
2929)
3030
31+ const scannerRegisterStreamCloseCompatErr = "cardinality violation: received no response message from non-server-streaming RPC"
32+
3133func createEnforcerScanServiceWrapper (conn * grpc.ClientConn ) cluster.Service {
3234 return share .NewEnforcerScanServiceClient (conn )
3335}
@@ -347,13 +349,26 @@ func scannerRegisterStream(ctx context.Context, client share.ControllerScanServi
347349
348350 log .Info ("Stream send done" )
349351 if _ , err = stream .CloseAndRecv (); err != nil && err != io .EOF {
352+ if isIgnorableScannerRegisterStreamCloseError (err ) {
353+ log .WithFields (log.Fields {"error" : err }).Debug ("Ignore stream close compatibility error" )
354+ return nil
355+ }
350356 log .WithFields (log.Fields {"error" : err }).Error ("Failed to close" )
351357 return err
352358 }
353359
354360 return nil
355361}
356362
363+ func isIgnorableScannerRegisterStreamCloseError (err error ) bool {
364+ s , ok := status .FromError (err )
365+ if ! ok || s .Code () != codes .Internal {
366+ return false
367+ }
368+
369+ return strings .Contains (s .Message (), scannerRegisterStreamCloseCompatErr )
370+ }
371+
357372func downgradeCriticalSeverityInResult (sr * share.ScanResult ) {
358373 for _ , v := range sr .Vuls {
359374 if v .Severity == string (common .Critical ) {
You can’t perform that action at this time.
0 commit comments