[PHP] fix: improve PHP procfs and utility coverage#744
Merged
brandonpayton merged 2 commits intoJul 10, 2026
Conversation
(cherry picked from commit 7e54390)
6 tasks
Preserve PID scope for procfs net entries, distinguish PID 0 from global entries, and hide reaped limbo identities while retaining zombies. Validate process existence across metadata and readlink operations. Make ps skip vanished processes instead of fabricating nice values, rebuild the package at revision 3, and remove stale WasmStat defaults.
brandonpayton
changed the base branch from
integration/kd-6nz-php-phpt-harness-only-base
to
integration/kd-6nz-php-phpt-batch-1-kernel-fixes
July 10, 2026 18:30
brandonpayton
merged commit Jul 10, 2026
5e011b6
into
integration/kd-6nz-php-phpt-batch-1-kernel-fixes
1 check passed
brandonpayton
deleted the
gascity/kd-6nz/split-pr717-procfs-utility-coverage
branch
July 10, 2026 18:30
Phase B-1 matrix build status —
|
| Package | Arch | Status | Sha |
|---|---|---|---|
| libcurl | wasm32 | built | 35266304 |
| libcxx | wasm32 | built | a5091dda |
| libcxx | wasm64 | built | e8edbf4b |
| libpng | wasm32 | built | e38cc366 |
| libxml2 | wasm32 | built | e13e27ba |
| libxml2 | wasm64 | built | 9264562d |
| openssl | wasm32 | built | ff868af9 |
| openssl | wasm64 | built | 3c5d0c7f |
| sqlite | wasm32 | built | 6fb919c4 |
| sqlite | wasm64 | built | e027cc42 |
| zlib | wasm32 | built | 1e6216c9 |
| zlib | wasm64 | built | ebc7e4a1 |
| bc | wasm32 | built | 3a78fb67 |
| bzip2 | wasm32 | built | 2ddc287d |
| coreutils | wasm32 | built | 2a18f004 |
| curl | wasm32 | built | a1ab622d |
| dash | wasm32 | built | a4ab83b1 |
| diffutils | wasm32 | built | 89790993 |
| dinit | wasm32 | built | b793ac0f |
| fbdoom | wasm32 | built | d9296a33 |
| file | wasm32 | built | 6a1455c3 |
| findutils | wasm32 | built | 1237e4d0 |
| gawk | wasm32 | built | 57c5d5cf |
| git | wasm32 | built | 7c88a387 |
| grep | wasm32 | built | 235ddcd5 |
| gzip | wasm32 | built | 481eb543 |
| kandelo-sdk | wasm32 | built | 18869e79 |
| kernel | wasm32 | built | 7f3002ad |
| less | wasm32 | built | a4f09d75 |
| lsof | wasm32 | built | cbd163cd |
| m4 | wasm32 | built | f0aff0d3 |
| make | wasm32 | built | 250d1d25 |
| mariadb | wasm32 | built | bccf7260 |
| mariadb | wasm64 | built | 3df390c0 |
| modeset | wasm32 | built | 703cfd80 |
| msmtpd | wasm32 | built | ec5df629 |
| nano | wasm32 | built | 1cea23a0 |
| ncurses | wasm32 | built | 8c54f1c2 |
| netcat | wasm32 | built | 361622f8 |
| nginx | wasm32 | built | d3f35370 |
| php | wasm32 | built | c81ee5be |
| posix-utils-lite | wasm32 | built | 66f52933 |
| sed | wasm32 | built | 03befd20 |
| spidermonkey | wasm32 | built | 99f07b7c |
| tar | wasm32 | built | bede734f |
| tcl | wasm32 | built | 9070fddb |
| unzip | wasm32 | built | 6591e7ef |
| userspace | wasm32 | built | c3d7e154 |
| vim | wasm32 | built | 0d02b67d |
| wget | wasm32 | built | 04bb22d8 |
| xz | wasm32 | built | f54f1e93 |
| zip | wasm32 | built | 19152752 |
| zstd | wasm32 | built | 45fa0e20 |
| bash | wasm32 | built | 74f8e39c |
| mariadb-test | wasm32 | built | 76d2883a |
| mariadb-vfs | wasm32 | built | 37cbbded |
| mariadb-vfs | wasm64 | built | a37c83f6 |
| nethack | wasm32 | built | 51827b74 |
| node | wasm32 | built | 98ceb30e |
| spidermonkey-node | wasm32 | built | 8feaed4d |
| vim-browser-bundle | wasm32 | built | 63be56eb |
| nethack-browser-bundle | wasm32 | built | 6f83697f |
| rootfs | wasm32 | built | 54b2fa02 |
| shell | wasm32 | built | 23a687f4 |
| lamp | wasm32 | built | 4d78fa39 |
| node-vfs | wasm32 | built | a4993b66 |
| wordpress | wasm32 | built | 98403f20 |
Auto-generated; replaced on each push. Raw data in the publish-status workflow artifact.
13 tasks
brandonpayton
added a commit
that referenced
this pull request
Jul 13, 2026
Returning ENOENT for missing, PID-zero, and reaped procfs paths changes existing stat/access/path errno semantics. Advance ABI 20 to 21 and regenerate ABI evidence atomically. Source-PR: #744 Folded PHP procfs and utility coverage: 604dd7cba.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Linux-compatible process metadata must be observable where Unix userland looks for it. PHP exposed two platform gaps:
/proc/<pid>/statdid not place scheduler priority and nice in their Linux fields, and procfs metadata paths could outlive the process-table state they claimed to represent. The bundledpsalso lacked the selection/output surface needed to consume that state.What
/proc/<pid>/statfield 18 as scheduler priority (20 + nice) and field 19 as nice./proc/netand making PID 0 an ordinary PID rather than a sentinel.Limboentries do not.posix-utils-lite pswith strict-p <pid[,pid]>and-o <fields>handling forpid,nice, andcomm; missing or malformed selected processes are no longer fabricated as successful rows.posix-utils-litebuild revision to 3 and make its build use the worktree-local SDK activation contract.Review fixes
The original commit
b4133e351established the proc-stat layout andpsoption support. Review found compile failures from nonexistentWasmStat::default(), an unwired liveness helper, PID-0/global-net aliasing, reaped entries remaining visible, permissivepsfailure behavior, and a missing package revision/build-contract update. Append-only commitdbcb63c77fixes those issues without rewriting the original contribution.Verification
Replayed cleanly on the current #866 tip (
91d13955f) and verified through the repository dev shell:posix-utils-literevision 3 source build: passed after the stale revision-2 archive was rejected by cache-key mismatchps -p 100 -o pid,nicereported the real process and exited 0;-p 999emitted no fabricated row and exited 1The aggregate batch still receives the full ready-to-merge gate once, after all accepted constituents are present.
Provenance
Supersedes fork-headed PR #724. The original contribution remains commit
b4133e351; the review repair is the appended commitdbcb63c77.