diff --git a/packages/jaeger-ui/src/components/TracePage/TraceFlamegraph/index.tsx b/packages/jaeger-ui/src/components/TracePage/TraceFlamegraph/index.tsx index 5d4a5e7a5c..0347a36f5a 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceFlamegraph/index.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TraceFlamegraph/index.tsx @@ -13,12 +13,15 @@ // limitations under the License. import React from 'react'; import { FlamegraphRenderer, convertJaegerTraceToProfile } from '@pyroscope/flamegraph'; +import _cloneDeep from 'lodash/cloneDeep'; import '@pyroscope/flamegraph/dist/index.css'; import './index.css'; const TraceFlamegraph = ({ trace }: any) => { - const convertedProfile = trace && trace.data ? convertJaegerTraceToProfile(trace.data) : null; + // Cloned b/c convertJaegerTraceToProfile or FlamegraphRenderer can possibly mutate the trace + // https://github.com/jaegertracing/jaeger-ui/issues/2483 + const convertedProfile = trace && trace.data ? convertJaegerTraceToProfile(_cloneDeep(trace.data)) : null; return (