Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/scripts/windows/test_task.bat
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,10 @@ if exist "%DEPS_DIR%\bin" (
echo WARNING: %DEPS_DIR%\bin missing — DLLs may be unresolved
)

REM protect_memory is process-global page protection toggled outside the compile
REM lock; the threaded worker pool shares one address space and races on it. Off.
%PHP_BUILD_DIR%\php.exe run-tests.php ^
-d opcache.protect_memory=0 ^
-P -q -j2 ^
-g FAIL,BORK,LEAK,XLEAK ^
--no-progress ^
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/build-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,13 @@ jobs:
working-directory: http-server
run: |
ulimit -c unlimited
# opcache.protect_memory=1 (a run-tests default) is process-global
# mprotect toggled outside the compile lock; the threaded worker pool
# shares one address space so it races across workers and SIGBUS on
# SHM writes. Off here — production defaults it off and real
# compilation is serialized by the SHM lock.
/usr/local/bin/php "$GITHUB_WORKSPACE/php-src/run-tests.php" \
-d opcache.protect_memory=0 \
-P -q -j"$(nproc)" \
-g FAIL,BORK,LEAK,XLEAK \
--no-progress \
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/build-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,14 @@ jobs:
- name: Run http_server phpt suite
working-directory: http-server
run: |
# opcache.protect_memory=1 (a run-tests default) is process-global
# mprotect and is toggled outside the compile lock; with the threaded
# worker pool sharing one address space it races across workers and
# SIGBUS on SHM writes (opcache admits "mprotect() is process-global
# and races", ZendAccelerator.c). Not a production concern — the flag
# defaults off and real compilation is serialized by the SHM lock.
/usr/local/bin/php "$GITHUB_WORKSPACE/php-src/run-tests.php" \
-d opcache.protect_memory=0 \
-P -q -j"$(sysctl -n hw.logicalcpu)" \
-g FAIL,BORK,LEAK,XLEAK \
--no-progress \
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/chaos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,7 @@ jobs:
echo "::group::TRUE_ASYNC_SCHED=$sched"
if ! TRUE_ASYNC_SCHED="$sched" /usr/local/bin/php \
"$GITHUB_WORKSPACE/php-src/run-tests.php" \
-d opcache.protect_memory=0 \
-P -q -j"$(nproc)" \
-g FAIL,BORK,LEAK,XLEAK \
--no-progress --offline --show-diff --set-timeout 120 \
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/debug-macos-workers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,10 @@ jobs:
working-directory: http-server
run: |
set +e
# protect_memory=1 is process-global mprotect — races across the
# threaded worker pool (false SIGBUS). Off; unused in production.
"$PHP_PREFIX/bin/php" "$PHP_PREFIX/bin/run-tests.php" \
-d opcache.protect_memory=0 \
-P -q -p "$PHP_PREFIX/bin/php" \
--show-diff --show-out \
--set-timeout 60 \
Expand Down
Loading