mirror of
https://github.com/clearlinux/swupd-server.git
synced 2026-09-02 11:41:49 +00:00
When running many instances of swupd_make_fullfiles in parallel, the read end of the pipe between the tar's for creating the full file of a directory becomes reused. The observed behavior of this is swupd_make_fullfiles hangs indefinitely with the expected tar reader missing. The corresponding tar writer is not killed with SIGPIPE because there is at least one reader still for the pipe, swupd_make_fullfiles. First forking from swupd_make_fullfiles, creating the pipe, and then fork-and-exec'ing for each tar ensures that pipe and file descriptor management is contained for the directory rename in question and cannot be reused by other directory renames. Signed-off-by: George T Kramer <george.t.kramer@intel.com>