ref: bc70f2bf123d94fc3226754ec9f1f44748e98162
parent: 0d7b05be4cb2391cbd280f6109c01ec2d3d7e0c6
author: Bjørn Erik Pedersen <[email protected]>
date: Thu Oct 10 10:14:55 EDT 2019
helpers: Fix data race in global logger init Fixes #6409
--- a/helpers/general.go
+++ b/helpers/general.go
@@ -283,6 +283,13 @@
m map[string]bool
}
+func (l *DistinctLogger) Reset() {
+ l.Lock()
+ defer l.Unlock()
+
+ l.m = make(map[string]bool)
+}
+
// Println will log the string returned from fmt.Sprintln given the arguments,
// but not if it has been logged before.
func (l *DistinctLogger) Println(v ...interface{}) {
@@ -347,11 +354,11 @@
DistinctFeedbackLog = NewDistinctFeedbackLogger()
)
-// InitLoggers sets up the global distinct loggers.
+// InitLoggers resets the global distinct loggers.
func InitLoggers() {
- DistinctErrorLog = NewDistinctErrorLogger()
- DistinctWarnLog = NewDistinctWarnLogger()
- DistinctFeedbackLog = NewDistinctFeedbackLogger()
+ DistinctErrorLog.Reset()
+ DistinctWarnLog.Reset()
+ DistinctFeedbackLog.Reset()
}
// Deprecated informs about a deprecation, but only once for a given set of arguments' values.