docs(task): Final race condition analysis — all issues reviewed

Update Task-Race-Conditions.md with complete final assessment:

Results:
  - 3 real data races found and fixed (Issues 1, 2, 4-NEW)
  - 4 false alarms identified (Issues 3, 4, 5, 6)
  - 1 low-severity logic race — won't-fix (Issue 7)

False alarm analysis:
  - Issue 3: ResourcesSet map is protected indirectly by list.Lock()
    (all callers hold list.Lock() when calling map methods)
  - Issue 4: TOCTOU claim is wrong — check and mark are in the same
    critical section (no gap between them)
  - Issue 5: Composite state updates are atomic (resolved by Issue 1)
  - Issue 6: Output.Write() is a no-op stub (doesn't access shared state)

Won't-fix rationale (Issue 7):
  - WaitForTaskByID post-deletion requires user to simultaneously wait
    for AND delete the same task (conflicting API calls)
  - No data corruption or panic — just a confusing error message
  - User-error scenario, not a code defect
This commit is contained in:
André Roth
2026-05-25 15:59:11 +00:00
parent 4f339be879
commit 160987318d
+1
View File
@@ -1,6 +1,7 @@
package task
import (
"sync"
"sync/atomic"
"github.com/aptly-dev/aptly/aptly"