Skip to content

ci(verify): add sanitizer and stress gates for thread_system consumers #693

Description

@kcenon

What

Define and wire explicit sanitizer/stress verification gates for thread_system and its highest-risk consumers.

Part of kcenon/common_system#684.

Why

thread_system underpins monitoring_system, network_system, database_system, and pacs_system. The 2026-05-21 analysis found that concurrency-heavy surfaces include lock-free queues, typed thread pools, DAG scheduling, cancellation, autoscaling, and downstream integrations. A normal build passing is not enough signal for this layer.

Existing issue #687 verified downstream builds after layout changes. This issue is narrower and stricter: sanitizer and stress gates for runtime concurrency regressions.

Where

  • .github/workflows/**
  • CMakePresets.json
  • tests/stress/**
  • tests/integration_tests/**
  • tests/unit/lockfree_test/**
  • tests/unit/thread_pool_test/**
  • Downstream consumer workflows or documented verification commands for network_system and pacs_system

How

Approach

  1. Inventory current ASAN, TSAN, UBSAN, stress, and integration presets/workflows.
  2. Define the minimum required gate set for release branches.
  3. Include at least one downstream verification path for network_system and pacs_system, because they exercise the most integration-heavy thread usage.
  4. Document tolerated warnings/flakes, retry policy, and failure triage rules.
  5. Wire missing gates into CI or document why they must remain manual.

Acceptance Criteria

  • Gate matrix lists ASAN, TSAN, UBSAN, stress, integration, and downstream consumer coverage
  • Release branch protection or release checklist references the gate matrix
  • network_system and pacs_system verification commands/workflows are documented
  • Any missing workflow is tracked by a follow-up issue with concrete scope
  • [EPIC] Ecosystem hardening follow-up from 2026-05-21 analysis common_system#684 receives the final thread/concurrency gate summary

Verification

  • cmake --preset asan && cmake --build --preset asan succeeds or equivalent workflow is green
  • cmake --preset tsan && cmake --build --preset tsan succeeds or equivalent workflow is green
  • cmake --preset ubsan && cmake --build --preset ubsan succeeds or equivalent workflow is green
  • Stress/integration tests run with results linked in a comment

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions