2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-11-14 12:58:09 +00:00
Files
Daniel Hilst bdebb7d4cf fix(xcat-core): --nproc=0 exits 127 before any package work
Parallel::ForkManager does not fork when max_procs is 0: start()
returns 0 in the original process. start_build_worker took that 0 as a
forked worker. It closed the only writer of the gate pipe, read
end-of-file and exited 127, so both worker loops in buildrpms.pl
stopped before they built a package or updated a repository.

start_build_worker now compares $$ before and after the fork callback.
When the callback returned 0 in the same process, it closes the gate and
returns 0, and the caller runs the work under the locks it already
holds. Both loops call start_build_worker, so both are covered.
build_worker_nofork.t passes with this change.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-11-06 16:26:07 -03:00
..