debug: test pytest-xdist process isolation (--dist loadfile) #4
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: debug-segfault | |
| # TEMPORARY diagnostic for the CI SIGSEGV (kuzu NodeTableScanState::scanNext at ~53%). | |
| # This variant tests PROCESS ISOLATION via pytest-xdist (--dist loadfile) — does | |
| # spreading the suite across fresh worker processes prevent the accumulated native | |
| # heap corruption that crashes kuzu? Delete once the fix is settled. | |
| on: | |
| push: | |
| branches: [debug/segfault-gdb] | |
| jobs: | |
| gdb: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Cache HuggingFace models | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/huggingface | |
| key: hf-${{ hashFiles('**/pyproject.toml') }}-v1 | |
| restore-keys: | | |
| hf-${{ hashFiles('**/pyproject.toml') }}- | |
| hf- | |
| - name: Install dependencies (+ pytest-xdist) | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e ".[dev]" pytest-xdist | |
| - name: Run FULL suite with pytest-xdist process isolation | |
| continue-on-error: true | |
| env: | |
| JAVA_CODEBASE_RAG_RUN_HEAVY: "0" | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| TRANSFORMERS_CACHE: ~/.cache/huggingface | |
| HF_HOME: ~/.cache/huggingface | |
| PYTHONFAULTHANDLER: "1" | |
| run: | | |
| pytest tests -n auto --dist loadfile -v 2>&1 | tee xdist-output.log | |
| echo "pytest-xdist finished (exit ${PIPESTATUS[0]}; 0 = all passed, 139 = SIGSEGV)" | |
| - name: Show crash location | |
| if: always() | |
| run: | | |
| echo "=== crash markers? ===" | |
| grep -nE "Fatal Python error|Segmentation fault|received signal SIGSEGV" xdist-output.log | head || echo "NO CRASH MARKERS (good)" | |
| echo "=== final summary lines ===" | |
| grep -aE "[0-9]+ (passed|failed|error)|Segmentation|pytest-xdist finished" xdist-output.log | tail -6 | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: xdist-output | |
| path: xdist-output.log |