Skip to content

Commit

Permalink
Don't trace gRPC "Canceled" errors
Browse files Browse the repository at this point in the history
We were getting a *lot* of log chaff at TRACE level during normal
operation because gRPC returns a "context canceled" error periodically
but it's not really an error for us because we immediately loop around
again.

This commit uses the gRPC status.Code() method to identify these
non-errors. It also uses errors.Is() instead of == to compare error
objects. This handles wrapped errors.

https://pkg.go.dev/google.golang.org/grpc/status#Code

https://github.com/golang/go/wiki/ErrorValueFAQ#how-should-i-change-my-error-handling-code-to-work-with-the-new-features

Signed-off-by: Toby Cabot <[email protected]>
  • Loading branch information
caboteria committed Sep 14, 2022
1 parent a546f3c commit 5e5cfb5
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
7 changes: 5 additions & 2 deletions pkg/registry/core/trace/ns_registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,16 @@ package trace

import (
"context"
"errors"
"io"

"github.com/networkservicemesh/sdk/pkg/registry/core/streamcontext"
"github.com/networkservicemesh/sdk/pkg/tools/typeutils"

"github.com/golang/protobuf/ptypes/empty"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"

"github.com/networkservicemesh/api/pkg/api/registry"
)
Expand All @@ -47,10 +50,10 @@ func (t *traceNetworkServiceRegistryFindClient) Recv() (*registry.NetworkService
rv, err := s.Recv()

if err != nil {
if err == io.EOF {
if errors.Is(err, io.EOF) {
return nil, err
}
if err == context.Canceled {
if status.Code(err) == codes.Canceled {
return nil, err
}
return nil, logError(ctx, err, operation)
Expand Down
7 changes: 5 additions & 2 deletions pkg/registry/core/trace/nse_registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,16 @@ package trace

import (
"context"
"errors"
"io"

"github.com/networkservicemesh/sdk/pkg/registry/core/streamcontext"
"github.com/networkservicemesh/sdk/pkg/tools/typeutils"

"github.com/golang/protobuf/ptypes/empty"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"

"github.com/networkservicemesh/api/pkg/api/registry"
)
Expand All @@ -47,10 +50,10 @@ func (t *traceNetworkServiceEndpointRegistryFindClient) Recv() (*registry.Networ
rv, err := s.Recv()

if err != nil {
if err == io.EOF {
if errors.Is(err, io.EOF) {
return nil, err
}
if err == context.Canceled {
if status.Code(err) == codes.Canceled {
return nil, err
}
return nil, logError(ctx, err, operation)
Expand Down

0 comments on commit 5e5cfb5

Please sign in to comment.