Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data race detected #1453

Closed
2 of 7 tasks
typeless opened this issue Apr 6, 2017 · 3 comments · Fixed by #1465
Closed
2 of 7 tasks

Data race detected #1453

typeless opened this issue Apr 6, 2017 · 3 comments · Fixed by #1465
Labels
Milestone

Comments

@typeless
Copy link
Contributor

typeless commented Apr 6, 2017

  • Gitea version (or commit ref):
    Gitea 1.1.0

  • Git version:
    git version 2.7.4

  • Operating system:
    Ubuntu 16.04.2 LTS

  • Database (use [x]):

    • PostgreSQL
    • MySQL
    • MSSQL
    • SQLite
  • Can you reproduce the bug at https://try.gitea.io:

    • Yes (provide example URL)
    • No
    • Not relevant
  • Log gist:

Apr  6 09:41:19 DIR-101 gitea[14276]: ==================
Apr  6 09:41:19 DIR-101 gitea[14276]: WARNING: DATA RACE
Apr  6 09:41:19 DIR-101 gitea[14276]: Write at 0x00c421eea368 by goroutine 136:
Apr  6 09:41:19 DIR-101 gitea[14276]:   os/exec.(*Cmd).Wait()
Apr  6 09:41:19 DIR-101 gitea[14276]:       /home/mura/tools/go/src/os/exec/exec.go:439 +0x15d
Apr  6 09:41:19 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/code.gitea.io/git.(*Command).RunInDirTimeoutPipeline.func1()
Apr  6 09:41:19 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/command.go:71 +0x38
Apr  6 09:41:19 DIR-101 gitea[14276]: Previous read at 0x00c421eea368 by goroutine 148:
Apr  6 09:41:19 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/code.gitea.io/git.(*Command).RunInDirTimeoutPipeline()
Apr  6 09:41:19 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/command.go:77 +0x3fe
Apr  6 09:41:19 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/code.gitea.io/git.(*Command).RunInDirTimeout()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/command.go:96 +0xd1
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/code.gitea.io/git.Fsck()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/git.go:78 +0x103
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/models.GitFsck.func1()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/models/repo.go:1943 +0xe4
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/github.com/go-xorm/xorm.(*Session).Iterate()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/go-xorm/xorm/session_iterate.go:35 +0x1a1
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/models.GitFsck()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/models/repo.go:1951 +0x1fe
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/github.com/gogits/cron.FuncJob.Run()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/gogits/cron/cron.go:92 +0x34
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/github.com/gogits/cron.(*Cron).runWithRecovery()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/gogits/cron/cron.go:152 +0x68
Apr  6 09:41:20 DIR-101 gitea[14276]: Goroutine 136 (running) created at:
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/code.gitea.io/git.(*Command).RunInDirTimeoutPipeline()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/command.go:72 +0x25c
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/code.gitea.io/git.(*Command).RunInDirTimeout()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/command.go:96 +0xd1
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/code.gitea.io/git.Fsck()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/git.go:78 +0x103
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/models.GitFsck.func1()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/models/repo.go:1943 +0xe4
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/github.com/go-xorm/xorm.(*Session).Iterate()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/go-xorm/xorm/session_iterate.go:35 +0x1a1
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/models.GitFsck()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/models/repo.go:1951 +0x1fe
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/github.com/gogits/cron.FuncJob.Run()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/gogits/cron/cron.go:92 +0x34
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/github.com/gogits/cron.(*Cron).runWithRecovery()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/gogits/cron/cron.go:152 +0x68
Apr  6 09:41:20 DIR-101 gitea[14276]: Goroutine 148 (running) created at:
Apr  6 09:41:20 DIR-101 gitea[14276]:   code.gitea.io/gitea/vendor/github.com/gogits/cron.(*Cron).run()
Apr  6 09:41:20 DIR-101 gitea[14276]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/gogits/cron/cron.go:185 +0x661
Apr  6 09:41:20 DIR-101 gitea[14276]: ==================
@typeless
Copy link
Contributor Author

typeless commented Apr 6, 2017

At first glance, it appears the cmd.ProcessState is read and simultaneously written within cmd.Wait in the other goroutine.

See https://github.com/go-gitea/gitea/blob/master/vendor/code.gitea.io/git/command.go#L71_L77

@typeless
Copy link
Contributor Author

typeless commented Apr 7, 2017

Another data point.

Apr 07 14:24:40 DIR-101 gitea[31691]: ==================
Apr 07 14:24:40 DIR-101 gitea[31691]: WARNING: DATA RACE
Apr 07 14:24:40 DIR-101 gitea[31691]: Write at 0x00c421d72ba8 by goroutine 228:
Apr 07 14:24:40 DIR-101 gitea[31691]:   os/exec.(*Cmd).Wait()
Apr 07 14:24:40 DIR-101 gitea[31691]:       /home/mura/tools/go/src/os/exec/exec.go:439 +0x15d
Apr 07 14:24:40 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/code.gitea.io/git.(*Command).RunInDirTimeoutPipeline.func1()
Apr 07 14:24:40 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/command.go:71 +0x38
Apr 07 14:24:40 DIR-101 gitea[31691]: Previous read at 0x00c421d72ba8 by goroutine 135:
Apr 07 14:24:40 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/code.gitea.io/git.(*Command).RunInDirTimeoutPipeline()
Apr 07 14:24:40 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/command.go:77 +0x3fe
Apr 07 14:24:40 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/code.gitea.io/git.(*Command).RunInDirTimeout()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/command.go:96 +0xd1
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/code.gitea.io/git.Fsck()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/git.go:78 +0x103
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/models.GitFsck.func1()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/models/repo.go:1943 +0xe4
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/github.com/go-xorm/xorm.(*Session).Iterate()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/go-xorm/xorm/session_iterate.go:35 +0x1a1
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/models.GitFsck()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/models/repo.go:1951 +0x1fe
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/github.com/gogits/cron.FuncJob.Run()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/gogits/cron/cron.go:92 +0x34
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/github.com/gogits/cron.(*Cron).runWithRecovery()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/gogits/cron/cron.go:152 +0x68
Apr 07 14:24:41 DIR-101 gitea[31691]: Goroutine 228 (running) created at:
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/code.gitea.io/git.(*Command).RunInDirTimeoutPipeline()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/command.go:72 +0x25c
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/code.gitea.io/git.(*Command).RunInDirTimeout()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/command.go:96 +0xd1
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/code.gitea.io/git.Fsck()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/code.gitea.io/git/git.go:78 +0x103
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/models.GitFsck.func1()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/models/repo.go:1943 +0xe4
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/github.com/go-xorm/xorm.(*Session).Iterate()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/go-xorm/xorm/session_iterate.go:35 +0x1a1
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/models.GitFsck()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/models/repo.go:1951 +0x1fe
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/github.com/gogits/cron.FuncJob.Run()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/gogits/cron/cron.go:92 +0x34
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/github.com/gogits/cron.(*Cron).runWithRecovery()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/gogits/cron/cron.go:152 +0x68
Apr 07 14:24:41 DIR-101 gitea[31691]: Goroutine 135 (running) created at:
Apr 07 14:24:41 DIR-101 gitea[31691]:   code.gitea.io/gitea/vendor/github.com/gogits/cron.(*Cron).run()
Apr 07 14:24:41 DIR-101 gitea[31691]:       /home/mura/devel/go/src/code.gitea.io/gitea/vendor/github.com/gogits/cron/cron.go:185 +0x661
Apr 07 14:24:41 DIR-101 gitea[31691]: ==================

Followed by the message below every time when doing git push -f:

Gitea: Internal error
UpdatePublicKey: database is locked
error: failed to push some refs to 'git@example.com/foo/bar.git'

P.S. Not sure whether the above two logs are related.

@lunny lunny modified the milestones: 1.2.0, 1.x.x Apr 9, 2017
@lunny lunny reopened this Apr 9, 2017
@lunny lunny modified the milestones: 1.3.0, 1.2.0 May 25, 2017
@lunny lunny modified the milestones: 1.3.0, 1.4.0 Nov 10, 2017
@lunny
Copy link
Member

lunny commented Nov 13, 2017

resolved by #1470

@lunny lunny closed this as completed Nov 13, 2017
@go-gitea go-gitea locked and limited conversation to collaborators Nov 23, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants