Initialization of the default value of the `If` field is functionally safe, but triggers the data race detector.
```
==================
WARNING: DATA RACE
Read at 0x00c00037cf78 by goroutine 10:
code.forgejo.org/forgejo/runner/v9/act/model.(*Workflow).GetJob()
/.../forgejo-runner/act/model/workflow.go:766 +0x2ae
code.forgejo.org/forgejo/runner/v9/act/model.(*Run).Job()
/.../forgejo-runner/act/model/planner.go:50 +0xab
code.forgejo.org/forgejo/runner/v9/act/runner.setJobResult()
/.../forgejo-runner/act/runner/job_executor.go:168
+0x7c
code.forgejo.org/forgejo/runner/v9/act/runner.TestSetJobResultConcurrency.func3()
/.../forgejo-runner/act/runner/job_executor_test.go:410
+0xf8
Previous write at 0x00c00037cf78 by goroutine 9:
code.forgejo.org/forgejo/runner/v9/act/model.(*Workflow).GetJob()
/.../forgejo-runner/act/model/workflow.go:767 +0x2ce
code.forgejo.org/forgejo/runner/v9/act/model.(*Run).Job()
/.../forgejo-runner/act/model/planner.go:50 +0xab
code.forgejo.org/forgejo/runner/v9/act/runner.setJobResult()
/.../forgejo-runner/act/runner/job_executor.go:168
+0x7c
code.forgejo.org/forgejo/runner/v9/act/runner.TestSetJobResultConcurrency.func2()
/.../forgejo-runner/act/runner/job_executor_test.go:405
+0xfb
Goroutine 10 (running) created at:
code.forgejo.org/forgejo/runner/v9/act/runner.TestSetJobResultConcurrency()
/.../forgejo-runner/act/runner/job_executor_test.go:408
+0xbac
testing.tRunner()
/home/mfenniak/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.6.linux-amd64/src/testing/testing.go:1792
+0x225
testing.(*T).Run.gowrap1()
/home/mfenniak/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.6.linux-amd64/src/testing/testing.go:1851
+0x44
Goroutine 9 (running) created at:
code.forgejo.org/forgejo/runner/v9/act/runner.TestSetJobResultConcurrency()
/.../forgejo-runner/act/runner/job_executor_test.go:403
+0xa84
testing.tRunner()
/home/mfenniak/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.6.linux-amd64/src/testing/testing.go:1792
+0x225
testing.(*T).Run.gowrap1()
/home/mfenniak/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.6.linux-amd64/src/testing/testing.go:1851
+0x44
==================
```
<!--start release-notes-assistant-->
<!--URL:https://code.forgejo.org/forgejo/runner-->
- other
- [PR](https://code.forgejo.org/forgejo/runner/pulls/864): <!--number 864 --><!--line 0 --><!--description Y2hvcmU6IHByZXZlbnQgJ2ZhbHNlIHBvc2l0aXZlJyBkYXRhIHJhY2UgZGV0ZWN0aW9uIHdpdGggSm9iLklmIFtza2lwIGNhc2NhZGVd-->chore: prevent 'false positive' data race detection with Job.If [skip cascade]<!--description-->
<!--end release-notes-assistant-->
Reviewed-on: https://code.forgejo.org/forgejo/runner/pulls/864
Reviewed-by: earl-warren <earl-warren@noreply.code.forgejo.org>
Co-authored-by: Mathieu Fenniak <mathieu@fenniak.net>
Co-committed-by: Mathieu Fenniak <mathieu@fenniak.net>
|
||
|---|---|---|
| .. | ||
| testdata | ||
| action.go | ||
| github_context.go | ||
| github_context_test.go | ||
| job_context.go | ||
| planner.go | ||
| planner_test.go | ||
| step_result.go | ||
| workflow.go | ||
| workflow_test.go | ||