diff --git a/promql/parser/parse.go b/promql/parser/parse.go index 5cf85ea350..0416720eb1 100644 --- a/promql/parser/parse.go +++ b/promql/parser/parse.go @@ -82,6 +82,7 @@ func NewParser(input string, opts ...Opt) *parser { //nolint:revive // unexporte p.injecting = false p.parseErrors = nil p.generatedParserResult = nil + p.lastClosing = posrange.Pos(0) // Clear lexer struct before reusing. p.lex = Lexer{ diff --git a/promql/parser/parse_test.go b/promql/parser/parse_test.go index 129701b010..24c920fe29 100644 --- a/promql/parser/parse_test.go +++ b/promql/parser/parse_test.go @@ -4823,6 +4823,11 @@ var testExpr = []struct { PosRange: posrange.PositionRange{Start: 0, End: 20}, }, }, + { + input: "sum(rate(", + fail: true, + errMsg: "unclosed left parenthesis", + }, { input: "foo[5s x 5s]", fail: true,