Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Allow serialized cross-thread retirement of occurrence-bound TDD runs

Open
#2,014 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
20/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
c
Domain
backend

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

p1-high

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.c with 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

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from semantic-reasoning/wirelog

All issues in semantic-reasoning/wirelog

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.