Skip to content

Commit 4ad8f9e

Browse files
committed
Remove global locking in gossip logging
In go-logging there is a concurrency related bug (it's not thread safe). Before 5f9f6a9 was merged, we fixed our logger locally using this nasty global lock. I'm removing this global lock now because it causes contention and isn't necessary. Better 3 months late than never... Change-Id: I1d1b1530f1ef47258e35297d708b8397be472856 Signed-off-by: Yacov Manevich <[email protected]>
1 parent 3bc4f52 commit 4ad8f9e

File tree

1 file changed

+2
-100
lines changed

1 file changed

+2
-100
lines changed

gossip/util/logging.go

+2-100
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"sync"
2525

2626
"github.com/op/go-logging"
27-
2827
"google.golang.org/grpc/grpclog"
2928
)
3029

@@ -50,7 +49,7 @@ func init() {
5049
}
5150

5251
type Logger struct {
53-
logger logging.Logger
52+
logging.Logger
5453
module string
5554
}
5655

@@ -86,105 +85,8 @@ func GetLogger(module string, peerId string) *Logger {
8685
}
8786
logging.SetLevel(lvl, module)
8887
lgr := &Logger{}
89-
lgr.logger = *logging.MustGetLogger(module)
90-
lgr.logger.ExtraCalldepth++
88+
lgr.Logger = *logging.MustGetLogger(module)
9189
lgr.module = module
9290
loggersByModules[module] = lgr
9391
return lgr
9492
}
95-
96-
func (l *Logger) Fatal(args ...interface{}) {
97-
lock.Lock()
98-
defer lock.Unlock()
99-
l.logger.Fatal(args)
100-
}
101-
102-
func (l *Logger) Fatalf(format string, args ...interface{}) {
103-
lock.Lock()
104-
defer lock.Unlock()
105-
l.logger.Fatalf(format, args)
106-
}
107-
108-
func (l *Logger) Panic(args ...interface{}) {
109-
lock.Lock()
110-
defer lock.Unlock()
111-
l.logger.Panic(args)
112-
}
113-
114-
func (l *Logger) Panicf(format string, args ...interface{}) {
115-
lock.Lock()
116-
defer lock.Unlock()
117-
l.logger.Panicf(format, args)
118-
}
119-
120-
func (l *Logger) Critical(args ...interface{}) {
121-
lock.Lock()
122-
defer lock.Unlock()
123-
l.logger.Critical(args)
124-
}
125-
126-
func (l *Logger) Criticalf(format string, args ...interface{}) {
127-
lock.Lock()
128-
defer lock.Unlock()
129-
l.logger.Criticalf(format, args)
130-
}
131-
132-
func (l *Logger) Error(args ...interface{}) {
133-
lock.Lock()
134-
defer lock.Unlock()
135-
l.logger.Error(args)
136-
}
137-
138-
func (l *Logger) Errorf(format string, args ...interface{}) {
139-
lock.Lock()
140-
defer lock.Unlock()
141-
l.logger.Errorf(format, args)
142-
}
143-
144-
func (l *Logger) Warning(args ...interface{}) {
145-
lock.Lock()
146-
defer lock.Unlock()
147-
l.logger.Warning(args)
148-
}
149-
150-
func (l *Logger) Warningf(format string, args ...interface{}) {
151-
lock.Lock()
152-
defer lock.Unlock()
153-
l.logger.Warningf(format, args)
154-
}
155-
156-
func (l *Logger) Notice(args ...interface{}) {
157-
lock.Lock()
158-
defer lock.Unlock()
159-
l.logger.Notice(args)
160-
}
161-
162-
func (l *Logger) Noticef(format string, args ...interface{}) {
163-
lock.Lock()
164-
defer lock.Unlock()
165-
l.logger.Noticef(format, args)
166-
}
167-
168-
func (l *Logger) Info(args ...interface{}) {
169-
lock.Lock()
170-
defer lock.Unlock()
171-
l.logger.Info(args)
172-
}
173-
174-
func (l *Logger) Infof(format string, args ...interface{}) {
175-
lock.Lock()
176-
defer lock.Unlock()
177-
l.logger.Infof(format, args)
178-
}
179-
180-
func (l *Logger) Debug(args ...interface{}) {
181-
lock.Lock()
182-
defer lock.Unlock()
183-
l.logger.Debug(args)
184-
}
185-
186-
func (l *Logger) Debugf(format string, args ...interface{}) {
187-
lock.Lock()
188-
defer lock.Unlock()
189-
l.logger.Debugf(format, args)
190-
}

0 commit comments

Comments
 (0)