diff --git a/cmd/crowdsec/serve.go b/cmd/crowdsec/serve.go index c8ccd4d5d..6ef310674 100644 --- a/cmd/crowdsec/serve.go +++ b/cmd/crowdsec/serve.go @@ -177,6 +177,9 @@ func ShutdownCrowdsecRoutines() error { // He's dead, Jim. crowdsecTomb.Kill(nil) + // close the potential geoips reader we have to avoid leaking ressources on reload + exprhelpers.GeoIPClose() + return reterr } diff --git a/pkg/exprhelpers/helpers.go b/pkg/exprhelpers/helpers.go index e4ecf0a3a..0aa99face 100644 --- a/pkg/exprhelpers/helpers.go +++ b/pkg/exprhelpers/helpers.go @@ -102,6 +102,18 @@ func GeoIPInit(datadir string) error { return nil } +func GeoIPClose() { + if geoIPCityReader != nil { + geoIPCityReader.Close() + } + if geoIPASNReader != nil { + geoIPASNReader.Close() + } + if geoIPRangeReader != nil { + geoIPRangeReader.Close() + } +} + func Init(databaseClient *database.Client) error { dataFile = make(map[string][]string) dataFileRegex = make(map[string][]*regexp.Regexp)