Closed g4s8 closed 3 years ago
Hi there. I tried to integrate this library into Gitaly component of Gitlab to replace Ruby licensee version with Go implementation: https://gitlab.com/gitlab-org/gitaly/-/merge_requests/3313
licensee
But the CI failed on race detection phase (with go test -race). So I tried to reproduce it on go-enry/go-license-detector tests with:
go test -race
go-enry/go-license-detector
go test -race -v ./licensedb
And it fails with error:
=== RUN TestDataset ================== WARNING: DATA RACE Write at 0x000001378b30 by goroutine 944: github.com/hhatto/gorst.initParser() /home/g4s8/go/pkg/mod/github.com/hhatto/gorst@v0.0.0-20181029133204-ca9f730cac5b/parser.leg.go:12772 +0x3b8 github.com/hhatto/gorst.NewParser() /home/g4s8/go/pkg/mod/github.com/hhatto/gorst@v0.0.0-20181029133204-ca9f730cac5b/rst.go:63 +0x3a8 github.com/go-enry/go-license-detector/v4/licensedb/internal/processors.RestructuredText() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/processors/markup.go:20 +0x3b github.com/go-enry/go-license-detector/v4/licensedb/internal.ExtractReadmeFiles() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/investigation.go:137 +0x3b4 github.com/go-enry/go-license-detector/v4/licensedb.Detect() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/licensedb.go:46 +0x2a7 github.com/go-enry/go-license-detector/v4/licensedb.TestDataset.func1() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/dataset_test.go:28 +0x128 Previous write at 0x000001378b30 by goroutine 928: [failed to restore the stack] Goroutine 944 (running) created at: github.com/go-enry/go-license-detector/v4/licensedb.TestDataset() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/dataset_test.go:26 +0x2fc testing.tRunner() /usr/lib/go/src/testing/testing.go:1123 +0x202 Goroutine 928 (running) created at: github.com/go-enry/go-license-detector/v4/licensedb.TestDataset() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/dataset_test.go:26 +0x2fc testing.tRunner() /usr/lib/go/src/testing/testing.go:1123 +0x202 ================== ================== WARNING: DATA RACE Write at 0x0000013444a0 by goroutine 944: github.com/hhatto/gorst.initParser() /home/g4s8/go/pkg/mod/github.com/hhatto/gorst@v0.0.0-20181029133204-ca9f730cac5b/parser.leg.go:12773 +0x3dc github.com/hhatto/gorst.NewParser() /home/g4s8/go/pkg/mod/github.com/hhatto/gorst@v0.0.0-20181029133204-ca9f730cac5b/rst.go:63 +0x3a8 github.com/go-enry/go-license-detector/v4/licensedb/internal/processors.RestructuredText() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/processors/markup.go:20 +0x3b github.com/go-enry/go-license-detector/v4/licensedb/internal.ExtractReadmeFiles() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/investigation.go:137 +0x3b4 github.com/go-enry/go-license-detector/v4/licensedb.Detect() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/licensedb.go:46 +0x2a7 github.com/go-enry/go-license-detector/v4/licensedb.TestDataset.func1() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/dataset_test.go:28 +0x128 Previous write at 0x0000013444a0 by goroutine 928: [failed to restore the stack] Goroutine 944 (running) created at: github.com/go-enry/go-license-detector/v4/licensedb.TestDataset() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/dataset_test.go:26 +0x2fc testing.tRunner() /usr/lib/go/src/testing/testing.go:1123 +0x202 Goroutine 928 (running) created at: github.com/go-enry/go-license-detector/v4/licensedb.TestDataset() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/dataset_test.go:26 +0x2fc testing.tRunner() /usr/lib/go/src/testing/testing.go:1123 +0x202 ================== ================== WARNING: DATA RACE Write at 0x00c000222098 by goroutine 125: regexp.(*Regexp).Longest() /usr/lib/go/src/regexp/regexp.go:166 +0x64 github.com/jdkato/prose/chunk.Locate() /home/g4s8/go/pkg/mod/github.com/jdkato/prose@v1.1.0/chunk/chunk.go:65 +0x4f github.com/jdkato/prose/chunk.Chunk() /home/g4s8/go/pkg/mod/github.com/jdkato/prose@v1.1.0/chunk/chunk.go:50 +0x7c github.com/go-enry/go-license-detector/v4/licensedb/internal.investigateReadmeFile() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/nlp.go:67 +0x469 github.com/go-enry/go-license-detector/v4/licensedb/internal.(*database).QueryReadmeText() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/db.go:443 +0x404 github.com/go-enry/go-license-detector/v4/licensedb/internal.InvestigateReadmeText() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/investigation.go:157 +0xaa github.com/go-enry/go-license-detector/v4/licensedb/internal.InvestigateReadmeTexts.func1() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/investigation.go:150 +0x68 github.com/go-enry/go-license-detector/v4/licensedb/internal.investigateCandidates() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/investigation.go:71 +0x3b8 github.com/go-enry/go-license-detector/v4/licensedb/internal.InvestigateReadmeTexts() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/investigation.go:149 +0x77 github.com/go-enry/go-license-detector/v4/licensedb.Detect() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/licensedb.go:50 +0x2fd github.com/go-enry/go-license-detector/v4/licensedb.TestDataset.func1() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/dataset_test.go:28 +0x128 Previous write at 0x00c000222098 by goroutine 777: regexp.(*Regexp).Longest() /usr/lib/go/src/regexp/regexp.go:166 +0x64 github.com/jdkato/prose/chunk.Locate() /home/g4s8/go/pkg/mod/github.com/jdkato/prose@v1.1.0/chunk/chunk.go:65 +0x4f github.com/jdkato/prose/chunk.Chunk() /home/g4s8/go/pkg/mod/github.com/jdkato/prose@v1.1.0/chunk/chunk.go:50 +0x7c github.com/go-enry/go-license-detector/v4/licensedb/internal.investigateReadmeFile() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/nlp.go:67 +0x469 github.com/go-enry/go-license-detector/v4/licensedb/internal.(*database).QueryReadmeText() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/db.go:443 +0x404 github.com/go-enry/go-license-detector/v4/licensedb/internal.InvestigateReadmeText() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/investigation.go:157 +0xaa github.com/go-enry/go-license-detector/v4/licensedb/internal.InvestigateReadmeTexts.func1() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/investigation.go:150 +0x68 github.com/go-enry/go-license-detector/v4/licensedb/internal.investigateCandidates() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/investigation.go:71 +0x3b8 github.com/go-enry/go-license-detector/v4/licensedb/internal.InvestigateReadmeTexts() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/internal/investigation.go:149 +0x77 github.com/go-enry/go-license-detector/v4/licensedb.Detect() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/licensedb.go:50 +0x2fd github.com/go-enry/go-license-detector/v4/licensedb.TestDataset.func1() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/dataset_test.go:28 +0x128 Goroutine 125 (running) created at: github.com/go-enry/go-license-detector/v4/licensedb.TestDataset() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/dataset_test.go:26 +0x2fc testing.tRunner() /usr/lib/go/src/testing/testing.go:1123 +0x202 Goroutine 777 (running) created at: github.com/go-enry/go-license-detector/v4/licensedb.TestDataset() /home/g4s8/projects/github.com/g4s8/go-license-detector/licensedb/dataset_test.go:26 +0x2fc testing.tRunner() /usr/lib/go/src/testing/testing.go:1123 +0x202 ================== 895 902 99% testing.go:1038: race detected during execution of test --- FAIL: TestDataset (135.48s) === CONT testing.go:1038: race detected during execution of test FAIL FAIL github.com/go-enry/go-license-detector/v4/licensedb 136.905s FAIL
Checked with go version go1.15.8 linux/amd64.
go version go1.15.8 linux/amd64
Submitted #10 PR with GitHub action workflow to reproduce this issue.
Hi there. I tried to integrate this library into Gitaly component of Gitlab to replace Ruby
licensee
version with Go implementation: https://gitlab.com/gitlab-org/gitaly/-/merge_requests/3313But the CI failed on race detection phase (with
go test -race
). So I tried to reproduce it ongo-enry/go-license-detector
tests with:And it fails with error:
Checked with
go version go1.15.8 linux/amd64
.