Skip to content

[PHP] fix: split fork/process/shared-memory runtime fixes#756

Open
brandonpayton wants to merge 8 commits into
integration/kd-6nz-php-phpt-socket-network-basefrom
gascity/kd-6nz/kd-e0l-pr717-fork-process-shm-split
Open

[PHP] fix: split fork/process/shared-memory runtime fixes#756
brandonpayton wants to merge 8 commits into
integration/kd-6nz-php-phpt-socket-network-basefrom
gascity/kd-6nz/kd-e0l-pr717-fork-process-shm-split

Conversation

@brandonpayton

Copy link
Copy Markdown
Member

Supersedes fork-headed PR #737. This replacement keeps the same head commit (9a7ec18) but moves the PR head onto an Automattic/kandelo branch.

Why this is needed

The PHP PHPT suite relies on fork, worker isolation, shared anonymous mappings, SysV and shared-memory visibility, and FPM-style process and socket coordination. If child processes do not inherit and synchronize the right runtime state, PHP sees failures that are really Kandelo process-model bugs.

Why this shape makes sense

These commits are grouped because fork, process, and shared-memory semantics are tightly coupled. Mmap inheritance, forked worker state, exec readers, dlopened side modules, and shared-memory sync all interact at process boundaries.

Why this is the correct fix

The branch fixes the process-runtime invariants directly. Preserving shared mappings across fork and synchronizing shared memory at the host boundary matches the Unix behavior PHP depends on and avoids marking core process tests as unsupported.

Stack

Base: integration/kd-6nz-php-phpt-socket-network-base, after the socket and network replacement layer.

Verification

Branch-location correction only. Replacement head SHA matches fork-headed PR #737 exactly.

Kandelo Agent and others added 8 commits June 20, 2026 17:21
(cherry picked from commit 079b089)
Port the PR #2 shared-memory/fork fixes onto current Automattic/kandelo. Centralized host workers now inherit and synchronize MAP_SHARED and SysV shared memory across fork, wait, detach, and exit boundaries so parent/child processes observe real shared state.

Grow exec-state serialization instead of failing at a fixed 64 KiB buffer, keep Node/browser fork paths in parity, refresh the ABI snapshot for ABI 16, and update focused host/kernel fixtures and tests for the port.
@github-actions

Copy link
Copy Markdown

Phase B-1 matrix build status — pr-756-staging

ABI v16. 63 built, 4 failed, 67 total.

Package Arch Status Sha
libcurl wasm32 built a6f6534d
libcxx wasm32 built 0d3c1977
libcxx wasm64 built 3117bdac
libiconv wasm32 built 1be46463
libiconv wasm64 built 82d9fdf3
libpng wasm32 built 697eac68
libxml2 wasm32 built 41fada20
libxml2 wasm64 built b3752126
openssl wasm32 built 96fbd5a6
openssl wasm64 built b53b8ff0
sqlite wasm32 built 10a86a4f
sqlite wasm64 built e74c37db
zlib wasm32 built 1b3d5c6f
zlib wasm64 built 8470f519
bc wasm32 built 645e81c1
bzip2 wasm32 built 85ec619a
coreutils wasm32 built d0c76ab8
curl wasm32 built 3dfec8e7
dash wasm32 built 04d2f6b8
diffutils wasm32 built c804830a
dinit wasm32 built e646ca69
fbdoom wasm32 built 935a71b0
file wasm32 built b9e73f9f
findutils wasm32 built aeeb6ecc
gawk wasm32 built 9c6d61e9
git wasm32 built ad9f9d06
grep wasm32 built c6aa7ff9
gzip wasm32 built 6c492249
kandelo-sdk wasm32 built fa69e4fc
kernel wasm32 failed
less wasm32 built 87aa211f
lsof wasm32 built c88ab5c9
m4 wasm32 built 5847a852
make wasm32 failed
mariadb wasm32 built d5d40cc7
mariadb wasm64 built 8c75bf16
modeset wasm32 built e5967428
msmtpd wasm32 built cff25a9b
nano wasm32 built d850deac
ncurses wasm32 built 9a77777f
netcat wasm32 built e8e76c42
nginx wasm32 built 3742a74e
php wasm32 built 6c215a1d
posix-utils-lite wasm32 built 3ab77df9
sed wasm32 built ef08c754
spidermonkey wasm32 built d1b3e35c
tar wasm32 built 7ac89a61
tcl wasm32 built 1e64df4d
unzip wasm32 built 3f650bbb
userspace wasm32 built 4dcfe62b
vim wasm32 built 9c5d375e
wget wasm32 built 2b0aaa25
xz wasm32 built dba87aba
zip wasm32 built f1c66da0
zstd wasm32 built 4381b467
bash wasm32 built 479f8133
mariadb-test wasm32 built 95e7de82
mariadb-vfs wasm32 built 9cca8b82
mariadb-vfs wasm64 built 97bcd722
nethack wasm32 built 6198392e
node wasm32 built cfe2bfc0
spidermonkey-node wasm32 built eee81883
vim-browser-bundle wasm32 built cb17bc3a
nethack-browser-bundle wasm32 built 0d6d8f1e
rootfs wasm32 failed
shell wasm32 failed
node-vfs wasm32 built f8a54c30

Auto-generated; replaced on each push. Raw data in the publish-status workflow artifact.

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