When running goflow with the workers flag set to greater than 1, the application will sometimes crash due to a concurrent map read and write.
Running goflow with go build -race also highlights many data races in the same places.
I believe the issue is in utils/netflow.go DecodeFlow() where templates and sampling can be written to when only a RLock has been acquired from the RWMutex.
When running goflow with the workers flag set to greater than 1, the application will sometimes crash due to a concurrent map read and write.
Running goflow with
go build -race
also highlights many data races in the same places.I believe the issue is in utils/netflow.go
DecodeFlow()
where templates and sampling can be written to when only a RLock has been acquired from the RWMutex.