Skip to content

gh-152754: Fix crash when an os.scandir iterator is shared between threads #200822

gh-152754: Fix crash when an os.scandir iterator is shared between threads

gh-152754: Fix crash when an os.scandir iterator is shared between threads #200822

Triggered via pull request July 9, 2026 21:41
Status Cancelled
Total duration 18m 36s
Artifacts 2

build.yml

on: pull_request
Change detection  /  Create context from changed files
13s
Change detection / Create context from changed files
Matrix: Address sanitizer
Matrix: build-macos
Matrix: build-san
Matrix: Ubuntu SSL tests
Matrix: build-ubuntu
Matrix: build-windows-msi
Waiting for pending jobs
Matrix: build-windows
Matrix: cifuzz
Docs  /  Doctest
6m 31s
Docs / Doctest
Docs  /  Check EPUB
2m 18s
Docs / Check EPUB
Check if Autoconf files are up to date
24s
Check if Autoconf files are up to date
Check if generated files are up to date
5m 2s
Check if generated files are up to date
C API Docs  /  Check if all C APIs are documented
10s
C API Docs / Check if all C APIs are documented
iOS
18m 3s
iOS
Emscripten  /  build and test
17m 55s
Emscripten / build and test
WASI  /  build and test
5m 18s
WASI / build and test
Hypothesis tests on Ubuntu
10m 27s
Hypothesis tests on Ubuntu
Sanitizers  /  TSan (free-threading)
17m 57s
Sanitizers / TSan (free-threading)
Cross build Linux
3m 48s
Cross build Linux
Matrix: build-android
Docs  /  ...  /  Check for removed HTML IDs
2m 24s
Docs / Check for removed HTML IDs / Check for removed HTML IDs
All required checks pass
2s
All required checks pass
Fit to window
Zoom out
Zoom in

Annotations

49 errors and 7 warnings
Docs / Check EPUB
Process completed with exit code 1.
Docs / Docs
Process completed with exit code 2.
CIFuzz / cpython3 (undefined)
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
CIFuzz / cpython3 (undefined)
Path does not exist: cifuzz-sarif/results.sarif
CIFuzz / cpython3 (undefined)
The operation was canceled.
CIFuzz / cpython3 (memory)
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
CIFuzz / cpython3 (memory)
Path does not exist: cifuzz-sarif/results.sarif
CIFuzz / cpython3 (memory)
The operation was canceled.
CIFuzz / cpython3 (address)
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
CIFuzz / cpython3 (address)
Path does not exist: cifuzz-sarif/results.sarif
CIFuzz / cpython3 (address)
The operation was canceled.
Windows (free-threading) / Build and test (x64, switch-case)
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Windows (free-threading) / Build and test (x64, switch-case)
The operation was canceled.
Windows / Build and test (x64, switch-case)
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Windows / Build and test (x64, switch-case)
The operation was canceled.
Windows / Build and test (Win32, switch-case)
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Windows / Build and test (Win32, switch-case)
The operation was canceled.
Address sanitizer (ubuntu-26.04)
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Address sanitizer (ubuntu-26.04)
The operation was canceled.
Windows (free-threading) / Build and test (arm64, switch-case)
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Windows (free-threading) / Build and test (arm64, switch-case)
The operation was canceled.
Emscripten / build and test
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Emscripten / build and test
The operation was canceled.
Android (x86_64)
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Android (x86_64)
The operation was canceled.
Windows / Build and test (arm64, switch-case)
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Windows / Build and test (arm64, switch-case)
The operation was canceled.
Sanitizers / TSan (free-threading)
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Sanitizers / TSan (free-threading)
The operation was canceled.
Sanitizers / UBSan
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Sanitizers / UBSan
The operation was canceled.
iOS
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
iOS
The operation was canceled.
macOS / build and test (macos-26-intel)
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
macOS / build and test (macos-26-intel)
The operation was canceled.
Tests
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Tests
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Tests
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Tests
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Tests
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Tests
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Tests
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Tests
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Tests
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Tests
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Tests
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Tests
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
Tests
Canceling since a higher priority waiting request for Tests-nascheme-gh-152754-os-race-mutex exists
All required checks pass
Process completed with exit code 1.
Hypothesis tests on Ubuntu
No files were found with the provided path: /home/runner/work/cpython/cpython-builddir/.hypothesis/examples/. No artifacts will be uploaded.
macOS / build and test (macos-26)
`$HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK` is set: not checking for outdated dependents or dependents with broken linkage!
macOS / build and test (macos-26)
The following taps are not trusted: aws/tap Homebrew is currently ignoring formulae, casks and commands from these taps because tap trust is required. Untap them with: brew untap aws/tap Trust specific formulae, casks and commands with: brew trust --formula <user>/<tap>/<formula> brew trust --cask <user>/<tap>/<cask> brew trust --command <user>/<tap>/<command> Whole-tap trust is broader and includes all current and future formulae, casks and commands from the listed taps. Trust whole taps with: brew trust aws/tap To disable trust checks: export HOMEBREW_NO_REQUIRE_TAP_TRUST=1 This is not recommended and will be removed in a later release. For more information, see: https://docs.brew.sh/Tap-Trust
macOS (free-threading) / build and test (macos-26)
`$HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK` is set: not checking for outdated dependents or dependents with broken linkage!
macOS (free-threading) / build and test (macos-26)
The following taps are not trusted: aws/tap Homebrew is currently ignoring formulae, casks and commands from these taps because tap trust is required. Untap them with: brew untap aws/tap Trust specific formulae, casks and commands with: brew trust --formula <user>/<tap>/<formula> brew trust --cask <user>/<tap>/<cask> brew trust --command <user>/<tap>/<command> Whole-tap trust is broader and includes all current and future formulae, casks and commands from the listed taps. Trust whole taps with: brew trust aws/tap To disable trust checks: export HOMEBREW_NO_REQUIRE_TAP_TRUST=1 This is not recommended and will be removed in a later release. For more information, see: https://docs.brew.sh/Tap-Trust
macOS / build and test (macos-26-intel)
`$HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK` is set: not checking for outdated dependents or dependents with broken linkage!
macOS / build and test (macos-26-intel)
The following taps are not trusted: aws/tap Homebrew is currently ignoring formulae, casks and commands from these taps because tap trust is required. Untap them with: brew untap aws/tap Trust specific formulae, casks and commands with: brew trust --formula <user>/<tap>/<formula> brew trust --cask <user>/<tap>/<cask> brew trust --command <user>/<tap>/<command> Whole-tap trust is broader and includes all current and future formulae, casks and commands from the listed taps. Trust whole taps with: brew trust aws/tap To disable trust checks: export HOMEBREW_NO_REQUIRE_TAP_TRUST=1 This is not recommended and will be removed in a later release. For more information, see: https://docs.brew.sh/Tap-Trust

Artifacts

Produced during runtime
Name Size Digest
UBSan-logs-default
363 Bytes
sha256:76523d6fcfeb713a658959e2124cd64de3876ac834e9cca816906d6397793842
html-ids-head.json.gz
125 KB
sha256:181f5d1e1c93e5ab5cb9d2ea81c2b694133055d9a7eb1f2537608fed8bb50dff