Skip to content

Commit fba9a83

Browse files
fix: Reset datafiles before loading the hub on HUP (#3712)
1 parent ab7ca05 commit fba9a83

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

cmd/crowdsec/serve.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ func reloadHandler(sig os.Signal) (*csconfig.Config, error) {
9696
return nil, err
9797
}
9898

99+
// Reset data files to avoid any potential conflicts with the new configuration
100+
exprhelpers.ResetDataFiles()
101+
99102
csParsers, datasources, err := initCrowdsec(cConfig, hub, false)
100103
if err != nil {
101104
return nil, fmt.Errorf("unable to init crowdsec: %w", err)

pkg/exprhelpers/helpers.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,15 @@ func Init(databaseClient *database.Client) error {
133133
return nil
134134
}
135135

136+
// ResetDataFiles clears all datafile-related global variables.
137+
// This should be called during HUP reload to ensure clean state.
138+
func ResetDataFiles() {
139+
dataFile = make(map[string][]string)
140+
dataFileRegex = make(map[string][]*regexp.Regexp)
141+
dataFileRe2 = make(map[string][]*re2.Regexp)
142+
dataFileRegexCache = make(map[string]gcache.Cache)
143+
}
144+
136145
func RegexpCacheInit(filename string, cacheCfg types.DataSource) error {
137146
// cache is explicitly disabled
138147
if cacheCfg.Cache != nil && !*cacheCfg.Cache {

0 commit comments

Comments
 (0)