Repository navigation
fix(libSceLibcInternal): allow omitted spawn PID outputs - #11869
Conversation
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
MarcZX10
left a comment
There was a problem hiding this comment.
Reviewed the synchronous PID handoff on both POSIX and Windows paths, the local fallback lifetime, and the regression test for both wrappers, child reaping, missing executable and null arguments. The PR reports repeated focused Linux and Windows runs; hosted Windows now passes, all policy checks pass, and current main is the tested base. The exact diff has no additional issue. I did not independently run the two platform builds.
|
Windows run of this head
AI-assisted: yes (Claude Code) |
|
A respectful nudge for a maintainer look whenever the queue allows — I know how many open PRs this project carries, and I appreciate that every one eventually gets read despite the volume. @oneandonlydean @adriadam10: this one is approved with all checks green, so it should be a quick land whenever it reaches the top of the pile. No rush intended — and sincerely, thank you both for the endless work you put into this project. It does not go unnoticed. |
What
A successful
posix_spawnorposix_spawnpwith a null PID output currently crashes when the host path stores the child PID. Supply a call-local output when the caller omits it, allowing both host paths to create and retain the child for laterwaitpidreaping.This follows FreeBSD 11.4's conditional PID store. Console acceptance of an omitted PID output has not been measured and is recorded in library debt.
The separate fixture exercises both guest wrappers, reaps the real child and checks exit status 43, and checks missing-program and null-argument errors with no PID output. It uses a private working directory and accounts for the Windows launcher's extra executable argument.
Tested
Submitted and tested head
31b57368e60ad9d2bd42cc26663b8145137011de, based on main3fea2a937ba9fbab2f06c51691fe0c5763659aa3.db8cb1ba82410385ea338b8d05a59b680ef11c08reproduced a segmentation fault on the first successful spawn with a null PID output.BUILD_TESTING=ON,ANYPS5_ENABLE_SPIRV_TOOLS=OFF. The completelibstarget and both selected spawn executables build on each platform.guest_posix_spawnplus newguest_posix_spawn_optional_pideach pass three consecutive runs, zero skips.These results cover library builds and the listed focused tests. No full application/test-suite, macOS, title or physical-console run is claimed.
Final upstream
3fea2a937ba9fbab2f06c51691fe0c5763659aa3merges cleanly; no files changed by this contribution changed after the tested base. Open/closed/merged history was checked, with no replacement found. Conventions and whitespace pass, and this merges cleanly with #11841, #11866 and the three maintained FreeType PRs.The overlap scan's uncomparable shared files with #5021 and #10749 were checked manually. #5021 has the same existing CMake/debt conflicts with main and with this contribution, outside the optional-PID changes; #10749's shared debt file merges cleanly both ways.
Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)