rundsk / dsk

DSK, short for “Design System Kit” – a workbench for collaboratively creating Design Systems
https://rundsk.com
Other
82 stars 8 forks source link

Data race in repo/lookup #128

Closed mariuswilms closed 4 years ago

mariuswilms commented 4 years ago

While running tests of the 1.3 branch with race detector enabled we've got:

2019-11-25T11:15:34.3197304Z WARNING: DATA RACE
2019-11-25T11:15:34.3197667Z Write at 0x00c0004f20f0 by goroutine 11:
2019-11-25T11:15:34.3199218Z   gopkg.in/src-d/go-git.v4/plumbing.(*MemoryObject).Write()
2019-11-25T11:15:34.3200198Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/plumbing/memory.go:54 +0x130
2019-11-25T11:15:34.3200670Z   io.copyBuffer()
2019-11-25T11:15:34.3201024Z       /opt/hostedtoolcache/go/1.12.13/x64/src/io/io.go:404 +0x282
2019-11-25T11:15:34.3201810Z   gopkg.in/src-d/go-git.v4/storage/filesystem.(*ObjectStorage).getFromUnpacked()
2019-11-25T11:15:34.3202291Z       /opt/hostedtoolcache/go/1.12.13/x64/src/io/io.go:364 +0x5ef
2019-11-25T11:15:34.3203016Z   gopkg.in/src-d/go-git.v4/storage/filesystem.(*ObjectStorage).EncodedObject()
2019-11-25T11:15:34.3203880Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/storage/filesystem/object.go:321 +0x6ae
2019-11-25T11:15:34.3204660Z   gopkg.in/src-d/go-git.v4/storage/filesystem.(*Storage).EncodedObject()
2019-11-25T11:15:34.3205069Z       <autogenerated>:1 +0x92
2019-11-25T11:15:34.3205724Z   gopkg.in/src-d/go-git.v4/plumbing/object.GetTree()
2019-11-25T11:15:34.3206579Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/plumbing/object/tree.go:45 +0x8c
2019-11-25T11:15:34.3207327Z   gopkg.in/src-d/go-git.v4/plumbing/object.(*Tree).Tree()
2019-11-25T11:15:34.3208153Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/plumbing/object/tree.go:109 +0x117
2019-11-25T11:15:34.3208825Z   gopkg.in/src-d/go-git.v4/plumbing/object.(*treeNoder).Children()
2019-11-25T11:15:34.3210055Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/plumbing/object/treenoder.go:82 +0x1c3
2019-11-25T11:15:34.3211017Z   gopkg.in/src-d/go-git.v4/plumbing/object.(*treeNoder).NumChildren()
2019-11-25T11:15:34.3211965Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/plumbing/object/treenoder.go:130 +0x3c
2019-11-25T11:15:34.3212720Z   gopkg.in/src-d/go-git.v4/utils/merkletrie.(*Iter).advance()
2019-11-25T11:15:34.3213564Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/utils/merkletrie/noder/path.go:61 +0xfa
2019-11-25T11:15:34.3214248Z   gopkg.in/src-d/go-git.v4/utils/merkletrie.(*doubleIter).stepBoth()
2019-11-25T11:15:34.3215234Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/utils/merkletrie/iter.go:130 +0x13c
2019-11-25T11:15:34.3215894Z   gopkg.in/src-d/go-git.v4/utils/merkletrie.diffDirs()
2019-11-25T11:15:34.3216973Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/utils/merkletrie/difftree.go:416 +0x210
2019-11-25T11:15:34.3217982Z   gopkg.in/src-d/go-git.v4/utils/merkletrie.diffNodesSameName()
2019-11-25T11:15:34.3260153Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/utils/merkletrie/difftree.go:380 +0x12a
2019-11-25T11:15:34.3261173Z   gopkg.in/src-d/go-git.v4/utils/merkletrie.diffNodes()
2019-11-25T11:15:34.3262232Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/utils/merkletrie/difftree.go:341 +0x220
2019-11-25T11:15:34.3263026Z   gopkg.in/src-d/go-git.v4/utils/merkletrie.DiffTreeContext()
2019-11-25T11:15:34.3263940Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/utils/merkletrie/difftree.go:310 +0x398
2019-11-25T11:15:34.3264628Z   gopkg.in/src-d/go-git.v4/plumbing/object.DiffTreeContext()
2019-11-25T11:15:34.3265464Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/plumbing/object/difftree.go:28 +0x32a
2019-11-25T11:15:34.3266166Z   github.com/rundsk/dsk/internal/vcs.(*Repo).buildModifiedLookup()
2019-11-25T11:15:34.3267164Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/plumbing/object/difftree.go:14 +0x697
2019-11-25T11:15:34.3267615Z 2019/11/25 11:15:34 Closing lookup table (repo (...repo133306134) versions)...
2019-11-25T11:15:34.3268254Z   github.com/rundsk/dsk/internal/vcs.NewRepo.func2()
2019-11-25T11:15:34.3268599Z       /home/runner/work/dsk/dsk/internal/vcs/repo.go:107 +0x45
2019-11-25T11:15:34.3269355Z   github.com/rundsk/dsk/internal/vcs.(*Lookup).Open.func1()
2019-11-25T11:15:34.3269871Z       /home/runner/work/dsk/dsk/internal/vcs/lookup.go:91 +0x32b
2019-11-25T11:15:34.3270272Z 
2019-11-25T11:15:34.3270603Z Previous read at 0x00c0004f20f0 by goroutine 6:
2019-11-25T11:15:34.3271389Z   gopkg.in/src-d/go-git.v4/plumbing.(*MemoryObject).Size()
2019-11-25T11:15:34.3272190Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/plumbing/memory.go:36 +0x3e
2019-11-25T11:15:34.3272920Z   gopkg.in/src-d/go-git.v4/plumbing/cache.(*ObjectLRU).Put()
2019-11-25T11:15:34.3273758Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/plumbing/cache/object_lru.go:50 +0x254
2019-11-25T11:15:34.3274480Z   gopkg.in/src-d/go-git.v4/storage/filesystem.(*ObjectStorage).getFromUnpacked()
2019-11-25T11:15:34.3275342Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/storage/filesystem/object.go:411 +0x585
2019-11-25T11:15:34.3276121Z   gopkg.in/src-d/go-git.v4/storage/filesystem.(*ObjectStorage).EncodedObject()
2019-11-25T11:15:34.3276989Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/storage/filesystem/object.go:321 +0x6ae
2019-11-25T11:15:34.3277777Z   gopkg.in/src-d/go-git.v4/storage/filesystem.(*Storage).EncodedObject()
2019-11-25T11:15:34.3278190Z       <autogenerated>:1 +0x92
2019-11-25T11:15:34.3278779Z   gopkg.in/src-d/go-git.v4/plumbing/object.GetCommit()
2019-11-25T11:15:34.3279999Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/plumbing/object/commit.go:55 +0x8c
2019-11-25T11:15:34.3280529Z   github.com/rundsk/dsk/internal/vcs.(*Repo).ModifiedWithContext()
2019-11-25T11:15:34.3281288Z       /home/runner/work/dsk/dsk/vendor/gopkg.in/src-d/go-git.v4/repository.go:1209 +0x6cd
2019-11-25T11:15:34.3281752Z   github.com/rundsk/dsk/internal/vcs.TestRepoLastModified()
2019-11-25T11:15:34.3282110Z       /home/runner/work/dsk/dsk/internal/vcs/repo_test.go:74 +0xc0d
2019-11-25T11:15:34.3282449Z   testing.tRunner()
2019-11-25T11:15:34.3282938Z       /opt/hostedtoolcache/go/1.12.13/x64/src/testing/testing.go:865 +0x163
2019-11-25T11:15:34.3283140Z 
2019-11-25T11:15:34.3283508Z 2019/11/25 11:15:34 Closing lookup table (repo (...repo133306134) modified)...
2019-11-25T11:15:34.3284228Z Goroutine 11 (running) created at:
2019-11-25T11:15:34.3286365Z   github.com/rundsk/dsk/internal/vcs.(*Lookup).Open()
2019-11-25T11:15:34.3286642Z       /home/runner/work/dsk/dsk/internal/vcs/lookup.go:78 +0x4c
2019-11-25T11:15:34.3286827Z   github.com/rundsk/dsk/internal/vcs.NewLookup()
2019-11-25T11:15:34.3287084Z       /home/runner/work/dsk/dsk/internal/vcs/lookup.go:29 +0x24d
2019-11-25T11:15:34.3287521Z   github.com/rundsk/dsk/internal/vcs.NewRepo()
2019-11-25T11:15:34.3287877Z       /home/runner/work/dsk/dsk/internal/vcs/repo.go:106 +0x536
2019-11-25T11:15:34.3288140Z   github.com/rundsk/dsk/internal/vcs.TestRepoLastModified()
2019-11-25T11:15:34.3288354Z       /home/runner/work/dsk/dsk/internal/vcs/repo_test.go:40 +0x4e7
2019-11-25T11:15:34.3288552Z   testing.tRunner()
2019-11-25T11:15:34.3288817Z       /opt/hostedtoolcache/go/1.12.13/x64/src/testing/testing.go:865 +0x163
2019-11-25T11:15:34.3288898Z 
2019-11-25T11:15:34.3289425Z Goroutine 6 (running) created at:
2019-11-25T11:15:34.3289625Z   testing.(*T).Run()
2019-11-25T11:15:34.3289837Z       /opt/hostedtoolcache/go/1.12.13/x64/src/testing/testing.go:916 +0x65a
2019-11-25T11:15:34.3290049Z   testing.runTests.func1()
2019-11-25T11:15:34.3290324Z       /opt/hostedtoolcache/go/1.12.13/x64/src/testing/testing.go:1157 +0xa8
2019-11-25T11:15:34.3290591Z   testing.tRunner()
2019-11-25T11:15:34.3290813Z       /opt/hostedtoolcache/go/1.12.13/x64/src/testing/testing.go:865 +0x163
2019-11-25T11:15:34.3291017Z   testing.runTests()
2019-11-25T11:15:34.3291286Z       /opt/hostedtoolcache/go/1.12.13/x64/src/testing/testing.go:1155 +0x523
2019-11-25T11:15:34.3291622Z   testing.(*M).Run()
2019-11-25T11:15:34.3291832Z       /opt/hostedtoolcache/go/1.12.13/x64/src/testing/testing.go:1072 +0x2eb
2019-11-25T11:15:34.3292326Z   main.main()
2019-11-25T11:15:34.3292542Z       _testmain.go:44 +0x222
2019-11-25T11:15:34.3292723Z ==================