diff --git a/pkg/blockbuilder/builder/builder.go b/pkg/blockbuilder/builder/builder.go index ad981e3183..f0c2f2ed30 100644 --- a/pkg/blockbuilder/builder/builder.go +++ b/pkg/blockbuilder/builder/builder.go @@ -20,6 +20,7 @@ import ( "github.com/grafana/loki/v3/pkg/compression" "github.com/grafana/loki/v3/pkg/kafka" "github.com/grafana/loki/v3/pkg/kafka/partition" + "github.com/grafana/loki/v3/pkg/logproto" "github.com/grafana/loki/v3/pkg/storage/chunk" "github.com/grafana/loki/v3/pkg/storage/config" "github.com/grafana/loki/v3/pkg/storage/stores" @@ -546,11 +547,15 @@ func (i *BlockBuilder) loadRecords(ctx context.Context, partitionID int32, offse continue } + // decorder reuses entries slice, so we need to copy it + entries := make([]logproto.Entry, len(stream.Entries)) + copy(entries, stream.Entries) + converted = append(converted, AppendInput{ tenant: record.TenantID, labels: labels, labelsStr: stream.Labels, - entries: stream.Entries, + entries: entries, }) }