Allow serialized cross-thread retirement of occurrence-bound TDD runs
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
Research direction
Start by auditing retained resources in wirelog/columnar/eval_tdd_plan.c and the handoff rules in wirelog/columnar/internal.h; then inspect tests/test_tdd_occurrence_execution.c and its workqueue fixtures. Implement and validate worker-to-coordinator retirement only after task quiescence, running the focused occurrence, source-access, and worker-cleanup tests plus supported sanitizers. Done means the stated acceptance criteria pass, including the unchanged production size gate and independent review gates.
Written by the indexing model from the issue text.
Description
Part of #1984 and the urgent replacement of K-Fusion with TDD.
Discovery context
Read-only integration review of private occurrence-execution commit 54fa94c54840bdd71e661cec052251f644f70564 found a concrete lifetime gap. wl_columnar_eval_tdd_plan_prepare_inputs acquires ordinary thread-affine input readers. A workqueue callback can return with a successful bound run or retained cleanup ownership; coordinator finish after a successful barrier then cannot release those readers because it is a different thread. Resubmitting cleanup does not guarantee the original pool thread.
Architect and Critic inspected the source and agreed this is a distinct prerequisite to real TDD dispatch. The existing transferable-reader API pins both the input descriptor and its canonical storage owner and preserves token address identity. Current generated-CSPA execution fixtures call begin/finish on the same thread, so they do not establish this handoff.
Scope
- In
wirelog/columnar/eval_tdd_plan.c, use transferable input leases for stable occurrence-bound run ownership after auditing every retained resource. - In
wirelog/columnar/internal.h, define sequential worker-to-coordinator handoff only after proven task quiescence. Live handles/tokens cannot move, be copied, or be accessed concurrently. - Extend
tests/test_tdd_occurrence_execution.cwith actual workqueue callbacks and coordinator cleanup. Preserve ordinary reader/writer affinity, operator eligibility, positive weight restrictions and current error distinctions.
No new scheduler, alternate rollback mechanism, admission relaxation or publication path. #1963–#1965 retain transaction ownership. This child does not establish CSPA session dispatch, signed semantics, seed-once scheduling, performance qualification or K-Fusion retirement.
Acceptance criteria
- Actual queued begin at W=1/2/8, with an explicit callback-thread versus coordinator witness, shared immutable FULL inputs and disjoint private driver partitions; coordinator finish occurs only after successful wait/drain.
- Exact generated-CSPA output rows match the independent oracle, including empty and cross-owner partitions. Source contents/generations, phase flags and coordinator state remain unchanged.
- A worker evaluation failure retains a refused intermediate cleanup frame and input leases; after callback completion coordinator cleanup retries without reevaluation, preserving the primary error and retiring every frame/lease/output/reservation exactly once.
- Exercise successful output transfer/discard and cleanup/credit refusal across the barrier with race-free per-task hook state. No session, pool, source or context is destroyed while a run owns it.
- Ordinary reader cross-thread and copied-token rejection stays covered. Focused occurrence/source-access/worker-cleanup, ASan/UBSan and supported TSan checks pass; unsupported host coverage is stated precisely.
- The exact candidate passes the unchanged canonical production size gate and independent review/design/risk gates. A private helper test pass alone does not close #1984 or qualify full runtime integration.
- Dominant language
- C
- Stars
- 18
- Forks
- 2
- Avg merge
- 8h
- Merged PRs (30d)
- 287
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from semantic-reasoning/wirelog
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
semantic-reasoning/wirelog#2163 ·
Maintainers usually reply within 1 day
-
Doc: insert executor and incremental consolidation leave sorted runs, not globally sorted headsOpen
Difficulty 1/5 Under an hour Newbie friendliness 83/100
semantic-reasoning/wirelog#2133 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
semantic-reasoning/wirelog#2042 ·
Maintainers usually reply within 1 day
-
p2-medium
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
semantic-reasoning/wirelog#1914 ·
Maintainers usually reply within 1 day
-
delta consolidate reports a governor refusal as ENOMEM without the session denial flagPossibly taken @justinjoy claimed this today. Open
Difficulty 3/5 1-2 days Newbie friendliness 20/100
semantic-reasoning/wirelog#2161 · 1 comment ·
Maintainers usually reply within 1 day
All issues in semantic-reasoning/wirelog
Similar issues
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
enhancement
Difficulty 1/5 Under an hour Newbie friendliness 85/100
FujiNetWIFI/fujinet-lib#122 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 12 days
-
bug format I/O medium priority rt_lib
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day