Skip to content

Commit 833bf0d

Browse files
authored
fix(logql): Fix panic in json parsing when using empty array index (#14393)
This commit fixes a panic that occurs with the following json parser expression: ``` | json keys[""] ``` when the log line is the following: ```json {"keys": ["a", "b", "c"]} ``` Signed-off-by: Christian Haudum <[email protected]>
1 parent 8438d41 commit 833bf0d

File tree

5 files changed

+26
-10
lines changed

5 files changed

+26
-10
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ require (
125125
github.com/efficientgo/core v1.0.0-rc.3
126126
github.com/fsnotify/fsnotify v1.7.0
127127
github.com/gogo/googleapis v1.4.1
128-
github.com/grafana/jsonparser v0.0.0-20240425183733-ea80629e1a32
128+
github.com/grafana/jsonparser v0.0.0-20241004153430-023329977675
129129
github.com/grafana/loki/pkg/push v0.0.0-20240924133635-758364c7775f
130130
github.com/hashicorp/golang-lru/v2 v2.0.7
131131
github.com/hashicorp/raft v1.7.1

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -1052,8 +1052,8 @@ github.com/grafana/gocql v0.0.0-20200605141915-ba5dc39ece85 h1:xLuzPoOzdfNb/RF/I
10521052
github.com/grafana/gocql v0.0.0-20200605141915-ba5dc39ece85/go.mod h1:crI9WX6p0IhrqB+DqIUHulRW853PaNFf7o4UprV//3I=
10531053
github.com/grafana/gomemcache v0.0.0-20240229205252-cd6a66d6fb56 h1:X8IKQ0wu40wpvYcKfBcc5T4QnhdQjUhtUtB/1CY89lE=
10541054
github.com/grafana/gomemcache v0.0.0-20240229205252-cd6a66d6fb56/go.mod h1:PGk3RjYHpxMM8HFPhKKo+vve3DdlPUELZLSDEFehPuU=
1055-
github.com/grafana/jsonparser v0.0.0-20240425183733-ea80629e1a32 h1:NznuPwItog+rwdVg8hAuGKP29ndRSzJAwhxKldkP8oQ=
1056-
github.com/grafana/jsonparser v0.0.0-20240425183733-ea80629e1a32/go.mod h1:796sq+UcONnSlzA3RtlBZ+b/hrerkZXiEmO8oMjyRwY=
1055+
github.com/grafana/jsonparser v0.0.0-20241004153430-023329977675 h1:U94jQ2TQr1m3HNyE8efSdyaBbDrdPaWImXyenuKZ/nw=
1056+
github.com/grafana/jsonparser v0.0.0-20241004153430-023329977675/go.mod h1:796sq+UcONnSlzA3RtlBZ+b/hrerkZXiEmO8oMjyRwY=
10571057
github.com/grafana/memberlist v0.3.1-0.20220714140823-09ffed8adbbe h1:yIXAAbLswn7VNWBIvM71O2QsgfgW9fRXZNR0DXe6pDU=
10581058
github.com/grafana/memberlist v0.3.1-0.20220714140823-09ffed8adbbe/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
10591059
github.com/grafana/pyroscope-go/godeltaprof v0.1.8 h1:iwOtYXeeVSAeYefJNaxDytgjKtUuKQbJqgAIjlnicKg=

pkg/logql/log/parser_test.go

+20
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,26 @@ func TestJSONExpressionParser(t *testing.T) {
368368
labels.FromStrings("param", "1"),
369369
NoParserHints(),
370370
},
371+
{
372+
"object element not present",
373+
testLine,
374+
[]LabelExtractionExpr{
375+
NewLabelExtractionExpr("undefined", `pod[""]`),
376+
},
377+
labels.EmptyLabels(),
378+
labels.FromStrings("undefined", ""),
379+
NoParserHints(),
380+
},
381+
{
382+
"accessing invalid array index",
383+
testLine,
384+
[]LabelExtractionExpr{
385+
NewLabelExtractionExpr("param", `pod.deployment.params[""]`),
386+
},
387+
labels.EmptyLabels(),
388+
labels.FromStrings("param", ""),
389+
NoParserHints(),
390+
},
371391
{
372392
"array string element",
373393
testLine,

vendor/github.com/grafana/jsonparser/parser.go

+2-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/modules.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1037,7 +1037,7 @@ github.com/grafana/go-gelf/v2/gelf
10371037
# github.com/grafana/gomemcache v0.0.0-20240229205252-cd6a66d6fb56
10381038
## explicit; go 1.18
10391039
github.com/grafana/gomemcache/memcache
1040-
# github.com/grafana/jsonparser v0.0.0-20240425183733-ea80629e1a32
1040+
# github.com/grafana/jsonparser v0.0.0-20241004153430-023329977675
10411041
## explicit; go 1.13
10421042
github.com/grafana/jsonparser
10431043
# github.com/grafana/loki/pkg/push v0.0.0-20240924133635-758364c7775f => ./pkg/push

0 commit comments

Comments
 (0)