Skip to content

Commit dff63bb

Browse files
committed
app/vlinsert/{opentelemetry,loki}: clear additional fields after the function call, which may add these fields
1 parent 4426db7 commit dff63bb

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

app/vlinsert/loki/pb.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,11 @@ func decodeStream(src []byte, pushLogs pushLogsHandler) error {
7777
return fmt.Errorf("cannot read Entry data")
7878
}
7979

80-
fs.Fields = fs.Fields[:streamFieldsLen]
81-
8280
if err := decodeEntry(data, fs, pushLogs); err != nil {
8381
return fmt.Errorf("cannot unmarshal Entry: %w", err)
8482
}
83+
84+
fs.Fields = fs.Fields[:streamFieldsLen]
8585
}
8686
}
8787
return nil

app/vlinsert/opentelemetry/pb.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ func decodeResourceLogs(src []byte, pushLogs pushLogsHandler) (err error) {
6666
return fmt.Errorf("cannot decode Resource: %w", err)
6767
}
6868
}
69+
6970
streamFieldsLen := len(fs.Fields)
71+
fbLen := len(fb.buf)
7072

7173
// Decode scope_logs
7274
var fc easyproto.FieldContext
@@ -82,12 +84,14 @@ func decodeResourceLogs(src []byte, pushLogs pushLogsHandler) (err error) {
8284
return fmt.Errorf("cannot read ScopeLogs data")
8385
}
8486

85-
clear(fs.Fields[streamFieldsLen:])
86-
fs.Fields = fs.Fields[:streamFieldsLen]
87-
8887
if err := decodeScopeLogs(data, fs, fb, pushLogs); err != nil {
8988
return fmt.Errorf("cannot decode ScopeLogs: %w", err)
9089
}
90+
91+
clear(fs.Fields[streamFieldsLen:])
92+
fs.Fields = fs.Fields[:streamFieldsLen]
93+
94+
fb.buf = fb.buf[:fbLen]
9195
}
9296
}
9397

@@ -154,11 +158,6 @@ func decodeScopeLogs(src []byte, fs *logstorage.Fields, fb *fmtBuffer, pushLogs
154158
return fmt.Errorf("cannot read LogRecord data")
155159
}
156160

157-
clear(fs.Fields[commonFieldsLen:])
158-
fs.Fields = fs.Fields[:commonFieldsLen]
159-
160-
fb.buf = fb.buf[:fbLen]
161-
162161
eventName, timestamp, err := decodeLogRecord(data, fs, fb)
163162
if err != nil {
164163
return fmt.Errorf("cannot decode LogRecord: %w", err)
@@ -180,6 +179,11 @@ func decodeScopeLogs(src []byte, fs *logstorage.Fields, fb *fmtBuffer, pushLogs
180179
} else {
181180
pushLogs(timestamp, fs.Fields, streamFieldsLen)
182181
}
182+
183+
clear(fs.Fields[commonFieldsLen:])
184+
fs.Fields = fs.Fields[:commonFieldsLen]
185+
186+
fb.buf = fb.buf[:fbLen]
183187
}
184188
}
185189
return nil

0 commit comments

Comments
 (0)