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 (
"context"
"errors"
"fmt"
"io"
"net/url"
@ -66,7 +67,7 @@ func init() {
TraceSamplingRatio: 1.0,
},
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)
if err != nil {
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 {
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 nil
}}, nil
}
// Returns a composite TestMap propagator