Skip to content

Race Condition with SetReportCaller() #954

@jeremyje

Description

@jeremyje

It looks like there's a data race condition between SetReportCaller and internal reads from entry.go.

https://github.com/sirupsen/logrus/blob/master/entry.go#L220 and https://github.com/sirupsen/logrus/blob/master/entry.go#L200 are 2 probable culprits here.

Step #8 - "Build: Test": ==================
Step #8 - "Build: Test": WARNING: DATA RACE
Step #8 - "Build: Test": Write at 0x00c00003c208 by goroutine 67:
Step #8 - "Build: Test":   github.com/sirupsen/logrus.(*Logger).SetReportCaller()
Step #8 - "Build: Test":       /go/pkg/mod/github.com/sirupsen/logrus@v1.4.1/logger.go:341 +0x85
Step #8 - "Build: Test":   github.com/GoogleCloudPlatform/open-match/internal/serving/testing.createOpenMatchServer()
Step #8 - "Build: Test":       /go/pkg/mod/github.com/sirupsen/logrus@v1.4.1/exported.go:31 +0xf6
Step #8 - "Build: Test":   github.com/GoogleCloudPlatform/open-match/internal/serving/testing.NewMiniMatch()
Step #8 - "Build: Test":       /workspace/internal/serving/testing/minimatch.go:65 +0x6d
Step #8 - "Build: Test":   github.com/GoogleCloudPlatform/open-match/test/e2e/frontend.TestFrontendStartup()
Step #8 - "Build: Test":       /workspace/test/e2e/frontend/frontendapi_test.go:13 +0x76
Step #8 - "Build: Test":   testing.tRunner()
Step #8 - "Build: Test":       /usr/local/go/src/testing/testing.go:865 +0x163
Step #8 - "Build: Test": 
Step #8 - "Build: Test": Previous read at 0x00c00003c208 by goroutine 62:
Step #8 - "Build: Test":   github.com/sirupsen/logrus.Entry.log()
Step #8 - "Build: Test":       /go/pkg/mod/github.com/sirupsen/logrus@v1.4.1/entry.go:220 +0x1c2
Step #8 - "Build: Test":   github.com/sirupsen/logrus.(*Entry).Log()
Step #8 - "Build: Test":       /go/pkg/mod/github.com/sirupsen/logrus@v1.4.1/entry.go:268 +0x160
Step #8 - "Build: Test":   github.com/GoogleCloudPlatform/open-match/internal/serving.(*GrpcWrapper).Start.func1()
Step #8 - "Build: Test":       /go/pkg/mod/github.com/sirupsen/logrus@v1.4.1/entry.go:297 +0x359
Step #8 - "Build: Test": 
Step #8 - "Build: Test": Goroutine 67 (running) created at:
Step #8 - "Build: Test":   testing.(*T).Run()
Step #8 - "Build: Test":       /usr/local/go/src/testing/testing.go:916 +0x65a
Step #8 - "Build: Test":   testing.runTests.func1()
Step #8 - "Build: Test":       /usr/local/go/src/testing/testing.go:1157 +0xa8
Step #8 - "Build: Test":   testing.tRunner()
Step #8 - "Build: Test":       /usr/local/go/src/testing/testing.go:865 +0x163
Step #8 - "Build: Test":   testing.runTests()
Step #8 - "Build: Test":       /usr/local/go/src/testing/testing.go:1155 +0x523
Step #8 - "Build: Test":   testing.(*M).Run()
Step #8 - "Build: Test":       /usr/local/go/src/testing/testing.go:1072 +0x2eb
Step #8 - "Build: Test":   main.main()
Step #8 - "Build: Test":       _testmain.go:84 +0x334
Step #8 - "Build: Test": 
Step #8 - "Build: Test": Goroutine 62 (running) created at:
Step #8 - "Build: Test":   github.com/GoogleCloudPlatform/open-match/internal/serving.(*GrpcWrapper).Start()
Step #8 - "Build: Test":       /workspace/internal/serving/grpcserver.go:61 +0x581
Step #8 - "Build: Test":   github.com/GoogleCloudPlatform/open-match/internal/serving/testing.NewMiniMatch()
Step #8 - "Build: Test":       /workspace/internal/serving/omserver.go:28 +0xfd
Step #8 - "Build: Test":   github.com/GoogleCloudPlatform/open-match/test/e2e/frontend.TestFrontendStartup()
Step #8 - "Build: Test":       /workspace/test/e2e/frontend/frontendapi_test.go:13 +0x76
Step #8 - "Build: Test":   testing.tRunner()
Step #8 - "Build: Test":       /usr/local/go/src/testing/testing.go:865 +0x163

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions