-
Notifications
You must be signed in to change notification settings - Fork 989
Closed
Description
I'm using the v1.9.7 - 2024-11-11 release.
After I run the command go build -race && ./go2rtc to build go2rtc together with race detector, some race reports are printed.
17:38:13.843 INF go2rtc platform=linux/amd64 revision=mod.aa12ae0 version=1.9.7
17:38:13.843 INF config path=/home/shizheng/go-benchmarks/go2rtc-1.9.7/go2rtc.yaml
17:38:13.844 ERR [rtsp] listen error=listen tcp :8554: bind: address already in use
17:38:13.844 INF [webrtc] listen addr=:8555/tcp
17:38:13.846 ERR [api] listen error=listen tcp :1984: bind: address already in use
==================
WARNING: DATA RACE
Read at 0x00c000002180 by goroutine 7:
github.com/AlexxIT/go2rtc/internal/app.(*circularBuffer).Write()
/home/shizheng/go-benchmarks/go2rtc-1.9.7/internal/app/log.go:120 +0x92
github.com/rs/zerolog.LevelWriterAdapter.WriteLevel()
/home/shizheng/golang/pkg/mod/github.com/rs/[email protected]/writer.go:27 +0x6f
github.com/rs/zerolog.(*LevelWriterAdapter).WriteLevel()
<autogenerated>:1 +0x1f
github.com/rs/zerolog.multiLevelWriter.WriteLevel()
/home/shizheng/golang/pkg/mod/github.com/rs/[email protected]/writer.go:98 +0xe9
github.com/rs/zerolog.(*multiLevelWriter).WriteLevel()
<autogenerated>:1 +0x84
github.com/rs/zerolog.(*Event).write()
/home/shizheng/golang/pkg/mod/github.com/rs/[email protected]/event.go:80 +0x2b2
github.com/rs/zerolog.(*Event).msg()
/home/shizheng/golang/pkg/mod/github.com/rs/[email protected]/event.go:151 +0x439
github.com/rs/zerolog.(*Event).Msg()
/home/shizheng/golang/pkg/mod/github.com/rs/[email protected]/event.go:110 +0xba
github.com/AlexxIT/go2rtc/internal/api.listen()
/home/shizheng/go-benchmarks/go2rtc-1.9.7/internal/api/api.go:89 +0x91
github.com/AlexxIT/go2rtc/internal/api.Init.gowrap1()
/home/shizheng/go-benchmarks/go2rtc-1.9.7/internal/api/api.go:72 +0x4d
Previous write at 0x00c000002180 by main goroutine:
github.com/AlexxIT/go2rtc/internal/app.(*circularBuffer).Write()
/home/shizheng/go-benchmarks/go2rtc-1.9.7/internal/app/log.go:142 +0x525
github.com/rs/zerolog.LevelWriterAdapter.WriteLevel()
/home/shizheng/golang/pkg/mod/github.com/rs/[email protected]/writer.go:27 +0x6f
github.com/rs/zerolog.(*LevelWriterAdapter).WriteLevel()
<autogenerated>:1 +0x1f
github.com/rs/zerolog.multiLevelWriter.WriteLevel()
/home/shizheng/golang/pkg/mod/github.com/rs/[email protected]/writer.go:98 +0xe9
github.com/rs/zerolog.(*multiLevelWriter).WriteLevel()
<autogenerated>:1 +0x84
github.com/rs/zerolog.(*Event).write()
/home/shizheng/golang/pkg/mod/github.com/rs/[email protected]/event.go:80 +0x2b2
github.com/rs/zerolog.(*Event).msg()
/home/shizheng/golang/pkg/mod/github.com/rs/[email protected]/event.go:151 +0x439
github.com/rs/zerolog.(*Event).Msg()
/home/shizheng/golang/pkg/mod/github.com/rs/[email protected]/event.go:110 +0x5da
github.com/AlexxIT/go2rtc/internal/webrtc.Init()
/home/shizheng/go-benchmarks/go2rtc-1.9.7/internal/webrtc/webrtc.go:56 +0x58e
main.main()
/home/shizheng/go-benchmarks/go2rtc-1.9.7/main.go:53 +0x78
Goroutine 7 (running) created at:
github.com/AlexxIT/go2rtc/internal/api.Init()
/home/shizheng/go-benchmarks/go2rtc-1.9.7/internal/api/api.go:72 +0x8d1
main.main()
/home/shizheng/go-benchmarks/go2rtc-1.9.7/main.go:45 +0x64
==================
Looks like this is caused by the logger under go2rtc/internal/app/log.go. The func (b *circularBuffer) Write(p []byte) (n int, err error) method is not protected by mutex, so that during initialization phase, when multiple goroutines try to write to the buffer concurrently, data races could appear.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working