runner/act
Mathieu Fenniak c55251bbd5 fix: race condition in matrix job result state may result in failed jobs being marked as successful
In `setJobResult` there is no coordination between multiple jobs that
are completing, leading to a possible condition where `jobResult` can be
read from the matrix job as `""` by one-or-more jobs, marked as
`"failed"` by one-or-more jobs, and then marked as `"success"` by other
jobs.

```
==================
WARNING: DATA RACE
Read at 0x00c0006d08a0 by goroutine 29232:
  code.forgejo.org/forgejo/runner/v9/act/runner.setJobResult()
      /.../forgejo-runner/act/runner/job_executor.go:173
+0x359
  code.forgejo.org/forgejo/runner/v9/act/runner.newJobExecutor.func6()
      /.../forgejo-runner/act/runner/job_executor.go:118
+0x15d
  code.forgejo.org/forgejo/runner/v9/act/runner.newJobExecutor.Executor.Finally.func14()
      /.../forgejo-runner/act/common/executor.go:183 +0x86
  code.forgejo.org/forgejo/runner/v9/act/runner.newJobExecutor.func7()
      /.../forgejo-runner/act/runner/job_executor.go:161
+0x191
  code.forgejo.org/forgejo/runner/v9/act/runner.newJobExecutor.Executor.Finally.func16()
      /.../forgejo-runner/act/common/executor.go:183 +0x86
  ...

Previous write at 0x00c0006d08a0 by goroutine 29234:
  code.forgejo.org/forgejo/runner/v9/act/runner.(*RunContext).result()
      /.../forgejo-runner/act/runner/run_context.go:897
+0x271
  code.forgejo.org/forgejo/runner/v9/act/runner.setJobResult()
      /.../forgejo-runner/act/runner/job_executor.go:181
+0x66e
  code.forgejo.org/forgejo/runner/v9/act/runner.newJobExecutor.func6()
      /.../forgejo-runner/act/runner/job_executor.go:118
+0x15d
  code.forgejo.org/forgejo/runner/v9/act/runner.newJobExecutor.Executor.Finally.func14()
      /.../forgejo-runner/act/common/executor.go:183 +0x86
  code.forgejo.org/forgejo/runner/v9/act/runner.newJobExecutor.func7()
      /.../forgejo-runner/act/runner/job_executor.go:161
+0x191
  code.forgejo.org/forgejo/runner/v9/act/runner.newJobExecutor.Executor.Finally.func16()
      /.../forgejo-runner/act/common/executor.go:183 +0x86
  ...
==================
```
2025-08-15 11:08:35 -06:00
..
artifactcache chore: to allow the runner to be imported, v9 needs to be in the go module (#777) 2025-07-31 10:35:11 +00:00
cacheproxy chore: modernize code (#857) 2025-08-15 04:54:13 +00:00
common test: fix data race in TestNewParallelExecutor... tests (#860) 2025-08-15 09:12:32 +00:00
container chore: modernize code (#857) 2025-08-15 04:54:13 +00:00
exprparser chore: modernize code (#857) 2025-08-15 04:54:13 +00:00
filecollector chore: modernize code (#857) 2025-08-15 04:54:13 +00:00
jobparser chore: modernize code (#857) 2025-08-15 04:54:13 +00:00
lookpath chore: use the same .golangci.yml as the runner & gofumpt over gofmt (#206) 2025-07-28 12:26:41 +00:00
model chore: modernize code (#857) 2025-08-15 04:54:13 +00:00
runner fix: race condition in matrix job result state may result in failed jobs being marked as successful 2025-08-15 11:08:35 -06:00
schema chore: modernize code (#857) 2025-08-15 04:54:13 +00:00
workflowpattern chore: modernize code (#857) 2025-08-15 04:54:13 +00:00