From 933767ec07a00c116dddbf24c8bd98ba1509e9f4 Mon Sep 17 00:00:00 2001 From: Matthew Jaffee Date: Mon, 27 Feb 2023 10:41:53 -0600 Subject: [PATCH] move closing of profiling stuff to Close method so it runs for duration of process (#2277) --- server/server.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/server/server.go b/server/server.go index 827d6edcd..89e9985d5 100644 --- a/server/server.go +++ b/server/server.go @@ -73,6 +73,8 @@ type Command struct { // done will be closed when Command.Close() is called done chan struct{} + traceCloser io.Closer + logOutput io.Writer queryLogOutput io.Writer logger loggerLogger @@ -834,7 +836,6 @@ func (m *Command) setupProfilingAndTracing() error { if err != nil { return errors.Wrap(err, "starting datadog") } - defer profiler.Stop() } if m.Config.Tracing.SamplerType != "off" { @@ -852,12 +853,10 @@ func (m *Command) setupProfilingAndTracing() error { if err != nil { return errors.Wrap(err, "initializing jaeger tracer") } - defer closer.Close() + m.traceCloser = closer tracing.GlobalTracer = opentracing.NewTracer(tracer, m.Logger()) - } else if m.Config.DataDog.EnableTracing { // Give preference to legacy support of jaeger t := opentracer.New(tracer.WithServiceName(m.Config.DataDog.Service)) - defer tracer.Stop() tracing.GlobalTracer = opentracing.NewTracer(t, m.Logger()) } return nil @@ -883,6 +882,14 @@ func (m *Command) Close() error { err := eg.Wait() _ = testhook.Closed(pilosa.NewAuditor(), m, nil) + if m.Config.DataDog.Enable { + defer profiler.Stop() + } + if m.traceCloser != nil { + defer m.traceCloser.Close() + } else if m.Config.DataDog.EnableTracing { + defer tracer.Stop() + } close(m.done) return errors.Wrap(err, "closing everything")