tracing/plugin: newTracer: ignore context.Canceled errors on Close()

Before this, containerd would always print an error when shutting down;

    ERRO[2023-12-07T14:35:00.070333131Z] failed to close plugin                        error="context canceled" id=io.containerd.internal.v1.tracing

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2023-12-07 15:41:46 +01:00
parent 2c8a996330
commit 22138541a2
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C

View File

@ -18,6 +18,7 @@ package plugin
import ( import (
"context" "context"
"errors"
"fmt" "fmt"
"io" "io"
"net/url" "net/url"
@ -66,7 +67,7 @@ func init() {
TraceSamplingRatio: 1.0, TraceSamplingRatio: 1.0,
}, },
InitFn: func(ic *plugin.InitContext) (interface{}, error) { InitFn: func(ic *plugin.InitContext) (interface{}, error) {
//get TracingProcessorPlugin which is a dependency // get TracingProcessorPlugin which is a dependency
plugins, err := ic.GetByType(plugins.TracingProcessorPlugin) plugins, err := ic.GetByType(plugins.TracingProcessorPlugin)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to get tracing processors: %w", err) return nil, fmt.Errorf("failed to get tracing processors: %w", err)
@ -178,13 +179,12 @@ func newTracer(ctx context.Context, config *TraceConfig, procs []trace.SpanProce
return &closer{close: func() error { return &closer{close: func() error {
for _, p := range procs { for _, p := range procs {
if err := p.Shutdown(ctx); err != nil { if err := p.Shutdown(ctx); err != nil && !errors.Is(err, context.Canceled) {
return err return err
} }
} }
return nil return nil
}}, nil }}, nil
} }
// Returns a composite TestMap propagator // Returns a composite TestMap propagator