Fix #72: fan-out drain/end race #81
No reviewers
Labels
No labels
actions
bug
cli
duplicate
enhancement
fork
forum
git storage
help wanted
insights
invalid
issues
moderation
oidc
ownership transfer
packages
pr/merge protection rules
projects
pull requests
question
releases
sponsorships
tags
webhooks
wiki
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crueber/walhub!81
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/issue-72"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #72 (corroborated dropped-work race in internal/notify/tasks.go — silent notification loss).
Two-sided close, both in internal/notify/tasks.go:
Neither half alone suffices (documented in the Decisions entry): a re-checking end still loses an attach between check and removal; a re-verifying joiner still loses to a bare end.
Regression tests (internal/notify/tasks_test.go):
Corroboration: throwaway old-API script on pre-fix code showed stillRunning=false with orphanedSeqs=[7] — the exact loss.
Verification: gofmt clean, go vet clean, full package go test -race green, coverage 97.2% (gate 95%; all touched funcs 100%). Doc Decisions entry appended in docs/features/06_notifications.md (law 12); package Concurrency note in notify.go updated.