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 during testing #30992

Closed
wxiaoguang opened this issue May 16, 2024 · 3 comments · Fixed by #30999
Closed

Data race during testing #30992

wxiaoguang opened this issue May 16, 2024 · 3 comments · Fixed by #30999

Comments

@wxiaoguang
Copy link
Contributor

=== TestOrgProjectAccess (tests/integration/org_project_test.go:17)
==================
WARNING: DATA RACE
Read at 0x000008956640 by goroutine 272626:
  code.gitea.io/gitea/models/unit.Type.UnitGlobalDisabled()
      /home/runner/work/gitea/gitea/models/unit/unit.go:170 +0x257
  code.gitea.io/gitea/models/repo.getUnitsByRepoID()
      /home/runner/work/gitea/gitea/models/repo/repo_unit.go:331 +0x230
  code.gitea.io/gitea/models/repo.(*Repository).LoadUnits()
      /home/runner/work/gitea/gitea/models/repo/repo.go:361 +0xa7
  code.gitea.io/gitea/models/repo.(*Repository).GetUnit()
      /home/runner/work/gitea/gitea/models/repo/repo.go:435 +0x46
  code.gitea.io/gitea/models/repo.(*Repository).IsTimetrackerEnabled()
      /home/runner/work/gitea/gitea/models/repo/issue.go:35 +0x5e
  code.gitea.io/gitea/models/issues.(*Issue).IsTimetrackerEnabled()
      /home/runner/work/gitea/gitea/models/issues/issue.go:193 +0x117
  code.gitea.io/gitea/models/issues.(*Issue).LoadAttributes()
      /home/runner/work/gitea/gitea/models/issues/issue.go:341 +0x325
  code.gitea.io/gitea/modules/indexer/issues.getIssueIndexerData()
      /home/runner/work/gitea/gitea/modules/indexer/issues/util.go:44 +0x3b1
  code.gitea.io/gitea/modules/indexer/issues.InitIssueIndexer.getIssueIndexerQueueHandler.func4()
      /home/runner/work/gitea/gitea/modules/indexer/issues/indexer.go:178 +0x4d5
  code.gitea.io/gitea/modules/queue.NewWorkerPoolQueueWithContext[go.shape.*uint8].func1()
      /home/runner/work/gitea/gitea/modules/queue/workerqueue.go:246 +0x174
  code.gitea.io/gitea/modules/queue.(*WorkerPoolQueue[go.shape.*uint8]).doWorkerHandle()
      /home/runner/work/gitea/gitea/modules/queue/workergroup.go:103 +0x1a7
  code.gitea.io/gitea/modules/queue.(*WorkerPoolQueue[go.shape.*uint8]).doStartNewWorker.func1()
      /home/runner/work/gitea/gitea/modules/queue/workergroup.go:178 +0x593

Previous write at 0x000008956640 by goroutine 271665:
  code.gitea.io/gitea/tests/integration.TestOrgProjectAccess.MockVariableValue[go.shape.[]code.gitea.io/gitea/models/unit.Type].func1()
      /home/runner/work/gitea/gitea/modules/test/utils.go:40 +0x50
  runtime.deferreturn()
      /opt/hostedtoolcache/go/1.22.3/x64/src/runtime/panic.go:602 +0x5d
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:285 +0x3bb
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:280 +0x5e9
  text/template.(*Template).execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:224 +0x44d
  text/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:207 +0x98
  html/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/html/template/template.go:124 +0x64
  code.gitea.io/gitea/modules/templates/scopedtmpl.escapeTemplate()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:99 +0x44
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet.func1()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:183 +0x38f
  text/template.(*state).evalPipeline()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:479 +0x1fe
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:267 +0x417
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:280 +0x5e9
  text/template.(*Template).execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:224 +0x44d
  text/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:207 +0x98
  html/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/html/template/template.go:124 +0x64
  code.gitea.io/gitea/modules/templates/scopedtmpl.escapeTemplate()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:99 +0x44
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet.func1()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:183 +0x38f
  text/template.(*state).evalPipeline()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:479 +0x1fe
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:267 +0x417
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:280 +0x5e9
  text/template.(*state).walkIfOrWith()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:313 +0x2dc
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:277 +0x2c4
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:280 +0x5e9
  text/template.(*Template).execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:224 +0x44d
  text/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:207 +0x98
  html/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/html/template/template.go:124 +0x64
  code.gitea.io/gitea/modules/templates/scopedtmpl.escapeTemplate()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:99 +0x44
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet.func1()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:183 +0x38f
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet.func1()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:195 +0x65e
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet.func1()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:187 +0x43e
  text/template.(*state).evalCommand()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:507 +0x4bc
  text/template.(*state).evalPipeline()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:479 +0x1fe
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:267 +0x417
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:280 +0x5e9
  text/template.(*Template).execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:224 +0x44d
  text/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:207 +0x98
  html/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/html/template/template.go:124 +0x64
  code.gitea.io/gitea/modules/templates/scopedtmpl.escapeTemplate()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:99 +0x44
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet.func1()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:183 +0x38f
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet.func1()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:195 +0x65e
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:267 +0x417
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:280 +0x5e9
  text/template.(*Template).execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:224 +0x44d
  text/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:207 +0x98
  html/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/html/template/template.go:124 +0x64
  code.gitea.io/gitea/modules/templates/scopedtmpl.escapeTemplate()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:99 +0x44
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet.func1()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:183 +0x38f
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet.func1()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:195 +0x65e
  text/template.(*state).evalCommand()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:507 +0x4bc
  text/template.(*state).evalPipeline()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:479 +0x1fe
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:267 +0x417
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:280 +0x5e9
  text/template.(*Template).execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:224 +0x44d
  text/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:207 +0x98
  html/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/html/template/template.go:124 +0x64
  code.gitea.io/gitea/modules/templates/scopedtmpl.escapeTemplate()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:99 +0x44
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet.func1()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:183 +0x38f
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet.func1()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:187 +0x43e
  text/template.(*state).evalCommand()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:507 +0x4bc
  text/template.(*state).evalPipeline()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:479 +0x1fe
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:267 +0x417
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:280 +0x5e9
  text/template.(*Template).execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:224 +0x44d
  text/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:207 +0x98
  html/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/html/template/template.go:124 +0x64
  code.gitea.io/gitea/modules/templates/scopedtmpl.escapeTemplate()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:99 +0x44
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet.func1()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:183 +0x38f
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:215 +0x828
  text/template.(*state).evalCommand()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:507 +0x4bc
  text/template.(*state).evalPipeline()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:479 +0x1fe
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:267 +0x417
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:280 +0x5e9
  text/template.(*state).walkTemplate()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:461 +0x456
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:285 +0x3bb
  text/template.(*state).walk()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:280 +0x5e9
  text/template.(*Template).execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:224 +0x44d
  text/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/text/template/exec.go:207 +0x98
  html/template.(*Template).Execute()
      /opt/hostedtoolcache/go/1.22.3/x64/src/html/template/template.go:124 +0x64
  code.gitea.io/gitea/modules/templates/scopedtmpl.escapeTemplate()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:99 +0x44
  code.gitea.io/gitea/modules/templates/scopedtmpl.newScopedTemplateSet()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:146 +0x77
  code.gitea.io/gitea/modules/templates/scopedtmpl.(*ScopedTemplate).Executor()
      /home/runner/work/gitea/gitea/modules/templates/scopedtmpl/scopedtmpl.go:74 +0x184
  code.gitea.io/gitea/modules/templates.(*HTMLRender).TemplateLookup()
      /home/runner/work/gitea/gitea/modules/templates/htmlrenderer.go:64 +0x15a
  code.gitea.io/gitea/modules/templates.(*HTMLRender).HTML()
      /home/runner/work/gitea/gitea/modules/templates/htmlrenderer.go:50 +0x1e8
  code.gitea.io/gitea/services/context.(*Context).HTML()
      /home/runner/work/gitea/gitea/services/context/context_response.go:80 +0x438
  code.gitea.io/gitea/routers/web/org.Projects()
      /home/runner/work/gitea/gitea/routers/web/org/projects.go:129 +0x11b9
  runtime.call16()
      /opt/hostedtoolcache/go/1.22.3/x64/src/runtime/asm_amd64.s:770 +0x42
  reflect.Value.Call()
      /opt/hostedtoolcache/go/1.22.3/x64/src/reflect/value.go:380 +0xb5
  code.gitea.io/gitea/modules/web.toHandlerProvider.func1.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:172 +0x256
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  net/http.Handler.ServeHTTP-fm()
      <autogenerated>:1 +0x67
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/modules/web.(*Route).wrapMiddlewareAndHandler.RouteMockPoint.func1.1()
      /home/runner/work/gitea/gitea/modules/web/routemock.go:34 +0xdd
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/modules/web.toHandlerProvider.func1.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:182 +0x2de
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/modules/web.toHandlerProvider.func1.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:182 +0x2de
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/modules/web.toHandlerProvider.func1.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:182 +0x2de
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/modules/web.toHandlerProvider.func1.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:182 +0x2de
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/modules/web.toHandlerProvider.func1.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:182 +0x2de
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/modules/web.toHandlerProvider.func1.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:182 +0x2de
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  github.com/go-chi/chi/v5.(*ChainHandler).ServeHTTP()
      /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.12/chain.go:31 +0x63
  github.com/go-chi/chi/v5.(*Mux).routeHTTP()
      /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.12/mux.go:459 +0x594
  github.com/go-chi/chi/v5.(*Mux).routeHTTP-fm()
      <autogenerated>:1 +0x51
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/modules/web.toHandlerProvider.func1.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:182 +0x2de
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/modules/web.toHandlerProvider.func1.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:182 +0x2de
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/modules/web.toHandlerProvider.func1.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:182 +0x2de
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  github.com/go-chi/chi/v5/middleware.GetHead.func1()
      /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.12/middleware/get_head.go:37 +0x3b7
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  net/http.Handler.ServeHTTP()
      <autogenerated>:1 +0x61
  code.gitea.io/gitea/modules/web.toHandlerProvider.wrapHandlerProvider[go.shape.interface { ServeHTTP(net/http.ResponseWriter, *net/http.Request) }].func2.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:136 +0x8b
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/modules/web.toHandlerProvider.func1.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:182 +0x2de
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/services/context.Contexter.func1.1()
      /home/runner/work/gitea/gitea/services/context/context.go:225 +0x251a
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  net/http.Handler.ServeHTTP()
      <autogenerated>:1 +0x61
  code.gitea.io/gitea/modules/web.toHandlerProvider.wrapHandlerProvider[go.shape.interface { ServeHTTP(net/http.ResponseWriter, *net/http.Request) }].func2.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:136 +0x8b
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  gitea.com/go-chi/session.Sessioner.func1.1()
      /home/runner/go/pkg/mod/gitea.com/go-chi/session@v0.0.0-20240316035857-16768d98ec96/session.go:257 +0x287
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  net/http.Handler.ServeHTTP()
      <autogenerated>:1 +0x61
  code.gitea.io/gitea/modules/web.toHandlerProvider.wrapHandlerProvider[go.shape.interface { ServeHTTP(net/http.ResponseWriter, *net/http.Request) }].func2.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:136 +0x8b
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  github.com/klauspost/compress/gzhttp.NewWrapper.func1.1()
      /home/runner/go/pkg/mod/github.com/klauspost/compress@v1.17.8/gzhttp/compress.go:501 +0x6e1
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/modules/web.toHandlerProvider.wrapHandlerProvider[go.shape.func(net/http.ResponseWriter, *net/http.Request)].func3.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:136 +0x79
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  github.com/go-chi/chi/v5.(*Mux).ServeHTTP()
      /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.12/mux.go:73 +0x716
  github.com/go-chi/chi/v5.(*Mux).Mount.func1()
      /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.12/mux.go:327 +0x4e5
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  github.com/go-chi/chi/v5.(*Mux).routeHTTP()
      /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.12/mux.go:459 +0x594
  github.com/go-chi/chi/v5.(*Mux).routeHTTP-fm()
      <autogenerated>:1 +0x51
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  github.com/go-chi/chi/v5.(*Mux).ServeHTTP()
      /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.12/mux.go:73 +0x716
  github.com/go-chi/chi/v5.(*Mux).Mount.func1()
      /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.12/mux.go:327 +0x4e5
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  github.com/go-chi/chi/v5.(*Mux).routeHTTP()
      /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.12/mux.go:459 +0x594
  github.com/go-chi/chi/v5.(*Mux).routeHTTP-fm()
      <autogenerated>:1 +0x51
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/modules/web/routing.(*requestRecordsManager).handler-fm.(*requestRecordsManager).handler.func1()
      /home/runner/work/gitea/gitea/modules/web/routing/logger_manager.go:122 +0x431
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  net/http.Handler.ServeHTTP()
      <autogenerated>:1 +0x61
  code.gitea.io/gitea/modules/web.toHandlerProvider.wrapHandlerProvider[go.shape.interface { ServeHTTP(net/http.ResponseWriter, *net/http.Request) }].func2.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:136 +0x8b
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/routers/common.ProtocolMiddlewares.ForwardedHeaders.func3.1()
      /home/runner/go/pkg/mod/github.com/chi-middleware/proxy@v1.1.1/middleware.go:37 +0x178
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  net/http.Handler.ServeHTTP()
      <autogenerated>:1 +0x61
  code.gitea.io/gitea/modules/web.toHandlerProvider.wrapHandlerProvider[go.shape.interface { ServeHTTP(net/http.ResponseWriter, *net/http.Request) }].func2.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:136 +0x8b
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/routers/common.ProtocolMiddlewares.func2.1()
      /home/runner/work/gitea/gitea/routers/common/middleware.go:49 +0x4ba
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  net/http.Handler.ServeHTTP()
      <autogenerated>:1 +0x61
  code.gitea.io/gitea/modules/web.toHandlerProvider.wrapHandlerProvider[go.shape.interface { ServeHTTP(net/http.ResponseWriter, *net/http.Request) }].func2.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:136 +0x8b
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/routers/common.ProtocolMiddlewares.func1.1()
      /home/runner/work/gitea/gitea/routers/common/middleware.go:40 +0x47d
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  net/http.Handler.ServeHTTP()
      <autogenerated>:1 +0x61
  code.gitea.io/gitea/modules/web.toHandlerProvider.wrapHandlerProvider[go.shape.interface { ServeHTTP(net/http.ResponseWriter, *net/http.Request) }].func2.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:136 +0x8b
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  code.gitea.io/gitea/routers/common.stripSlashesMiddleware.func1()
      /home/runner/work/gitea/gitea/routers/common/middleware.go:103 +0x4d8
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  net/http.Handler.ServeHTTP()
      <autogenerated>:1 +0x61
  code.gitea.io/gitea/modules/web.toHandlerProvider.wrapHandlerProvider[go.shape.interface { ServeHTTP(net/http.ResponseWriter, *net/http.Request) }].func2.1()
      /home/runner/work/gitea/gitea/modules/web/handler.go:136 +0x8b
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.22.3/x64/src/net/http/server.go:2166 +0x47
  github.com/go-chi/chi/v5.(*Mux).ServeHTTP()
      /home/runner/go/pkg/mod/github.com/go-chi/chi/v5@v5.0.12/mux.go:90 +0x69e
  code.gitea.io/gitea/modules/web.(*Route).ServeHTTP()
      /home/runner/work/gitea/gitea/modules/web/route.go:163 +0x242
  code.gitea.io/gitea/tests/integration.MakeRequest()
      /home/runner/work/gitea/gitea/tests/integration/integration_test.go:400 +0x1fb
  code.gitea.io/gitea/tests/integration.TestOrgProjectAccess()
      /home/runner/work/gitea/gitea/tests/integration/org_project_test.go:26 +0x344
  testing.tRunner()
      /opt/hostedtoolcache/go/1.22.3/x64/src/testing/testing.go:1689 +0x21e
  testing.(*T).Run.gowrap1()
      /opt/hostedtoolcache/go/1.22.3/x64/src/testing/testing.go:1742 +0x44

Goroutine 272626 (running) created at:
  code.gitea.io/gitea/modules/queue.(*WorkerPoolQueue[go.shape.*uint8]).doStartNewWorker()
      /home/runner/work/gitea/gitea/modules/queue/workergroup.go:153 +0x12b
  code.gitea.io/gitea/modules/queue.(*WorkerPoolQueue[go.shape.*uint8]).doDispatchBatchToWorker()
      /home/runner/work/gitea/gitea/modules/queue/workergroup.go:73 +0x291
  code.gitea.io/gitea/modules/queue.(*WorkerPoolQueue[go.shape.*uint8]).doRun()
      /home/runner/work/gitea/gitea/modules/queue/workergroup.go:336 +0xc33
  code.gitea.io/gitea/modules/queue.(*WorkerPoolQueue[go.shape.*uint8]).Run()
      /home/runner/work/gitea/gitea/modules/queue/workerqueue.go:180 +0x44
  code.gitea.io/gitea/modules/queue.(*WorkerPoolQueue[*code.gitea.io/gitea/modules/indexer/issues.IndexerMetadata]).Run()
      /home/runner/work/gitea/gitea/modules/queue/workerqueue.go:179 +0x17
  code.gitea.io/gitea/modules/graceful.(*Manager).RunWithCancel()
      /home/runner/work/gitea/gitea/modules/graceful/manager.go:75 +0x1e6
  code.gitea.io/gitea/modules/indexer/issues.InitIssueIndexer.func1.gowrap1()
      /home/runner/work/gitea/gitea/modules/indexer/issues/indexer.go:124 +0x4f

Goroutine 271665 (running) created at:
  testing.(*T).Run()
      /opt/hostedtoolcache/go/1.22.3/x64/src/testing/testing.go:1742 +0x825
  testing.runTests.func1()
      /opt/hostedtoolcache/go/1.22.3/x64/src/testing/testing.go:2161 +0x85
  testing.tRunner()
      /opt/hostedtoolcache/go/1.22.3/x64/src/testing/testing.go:1689 +0x21e
  testing.runTests()
      /opt/hostedtoolcache/go/1.22.3/x64/src/testing/testing.go:2159 +0x8be
  testing.(*M).Run()
      /opt/hostedtoolcache/go/1.22.3/x64/src/testing/testing.go:2027 +0xf17
  code.gitea.io/gitea/tests/integration.TestMain()
      /home/runner/work/gitea/gitea/tests/integration/integration_test.go:132 +0x671
  main.main()
      _testmain.go:1183 +0x2d4
==================
--- FAIL: TestOrgProjectAccess (0.66s)
@KN4CK3R
Copy link
Member

KN4CK3R commented May 16, 2024

It's because of the variable mock I think? Then it should not occur in the production code.

@wxiaoguang
Copy link
Contributor Author

Yup, it only affects testing and CI.

(Haven't got time to look into it, so open an issue to record)

@wxiaoguang
Copy link
Contributor Author

-> Fix data-race during testing #30999

lunny pushed a commit that referenced this issue May 20, 2024
GiteaBot pushed a commit to GiteaBot/gitea that referenced this issue May 20, 2024
wxiaoguang added a commit that referenced this issue May 20, 2024
Backport #30999 by wxiaoguang

Fix #30992

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants