Skip to content

test: expand concurrency validation methodology#97

Merged
div0rce merged 3 commits into
mainfrom
feat/m33-advanced-concurrency-validation
Jun 2, 2026
Merged

test: expand concurrency validation methodology#97
div0rce merged 3 commits into
mainfrom
feat/m33-advanced-concurrency-validation

Conversation

@div0rce
Copy link
Copy Markdown
Owner

@div0rce div0rce commented Jun 2, 2026

Summary

  • Adds deterministic PipelinePerturbation hooks to the threaded pipeline so tests can force per-stage yields without sleeps or timing-sensitive assertions.
  • Adds a regression test that compares perturbed pipeline runs against the single-threaded reference across seeded property flows, queue capacities, and input/engine/output yield patterns.
  • Adds make concurrency-stress / scripts/concurrency_stress.sh as an explicit opt-in repeated concurrency-label test loop.
  • Updates concurrency docs/ADR/progress notes to distinguish static happens-before reasoning, TSan, scheduling perturbation, and repeated stress as empirical evidence over executed schedules rather than proof over all interleavings.

Scope

M33 only. This does not start M34, does not change gateway architecture, and does not make production latency or full correctness-proof claims.

Verification

  • make check - 189/189 passed
  • make asan - 189/189 passed
  • make tsan - 19/19 concurrency-labelled tests passed
  • QSL_CONCURRENCY_STRESS_LOOPS=2 make concurrency-stress - 2/2 loops passed
  • bash -n scripts/concurrency_stress.sh
  • git diff --check

Follow-up

After this merges, /start-milestone 34 begins the epoll gateway architecture milestone. Issue #90 remains the separate PMU-capable Linux perf evidence debt.

@div0rce
Copy link
Copy Markdown
Owner Author

div0rce commented Jun 2, 2026

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@div0rce
Copy link
Copy Markdown
Owner Author

div0rce commented Jun 2, 2026

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@div0rce div0rce marked this pull request as ready for review June 2, 2026 17:10
@div0rce div0rce merged commit fe8679a into main Jun 2, 2026
6 checks passed
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 95a1f6c6af

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

i=1
while [[ "$i" -le "$LOOPS" ]]; do
echo "concurrency stress loop $i/$LOOPS"
ctest --preset "$PRESET" -L "$LABEL" --output-on-failure
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Fail the stress loop when no tests match

When QSL_CONCURRENCY_STRESS_LABEL is mistyped, or if the CTest labels/discovery regress, this ctest -L invocation can match zero tests and still let every loop report success; checked ctest --help, which documents --no-tests=<[error|ignore]>, and the default empty selection exits 0. Add --no-tests=error here so the stress target cannot produce false validation without running any concurrency tests.

Useful? React with 👍 / 👎.

@div0rce div0rce deleted the feat/m33-advanced-concurrency-validation branch June 2, 2026 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant