Explorar o código

fix lock when dumping the parsing state in explain mode (#2234)

blotus %!s(int64=2) %!d(string=hai) anos
pai
achega
6720d89845
Modificáronse 1 ficheiros con 2 adicións e 2 borrados
  1. 2 2
      pkg/parser/runtime.go

+ 2 - 2
pkg/parser/runtime.go

@@ -326,11 +326,11 @@ func Parse(ctx UnixParserCtx, xp types.Event, nodes []Node) (types.Event, error)
 			}
 			clog.Tracef("node (%s) ret : %v", node.rn, ret)
 			if ParseDump {
+				StageParseMutex.Lock()
 				if len(StageParseCache[stage][node.Name]) == 0 {
-					StageParseMutex.Lock()
 					StageParseCache[stage][node.Name] = make([]ParserResult, 0)
-					StageParseMutex.Unlock()
 				}
+				StageParseMutex.Unlock()
 				evtcopy := deepcopy.Copy(event)
 				parserInfo := ParserResult{Evt: evtcopy.(types.Event), Success: ret}
 				StageParseMutex.Lock()