Bug 760669

Summary: guestfish copy-in and <! (inline execution) don't mix well: pclose: No child processes
Product: [Community] Virtualization Tools Reporter: Richard W.M. Jones <rjones>
Component: libguestfsAssignee: Richard W.M. Jones <rjones>
Status: CLOSED UPSTREAM QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: mbooth, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-07 12:13:23 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Richard W.M. Jones 2011-12-06 18:39:24 UTC
Description of problem:

From a directory full of files, try this:

$ guestfish -N fs:ext2:10G -m /dev/sda1 

Welcome to guestfish, the libguestfs filesystem interactive shell for
editing virtual machine filesystems.

Type: 'help' for help on commands
      'man' to read the manual
      'quit' to quit the shell

><fs> <! for f in *; do echo copy-in "$f" /; done
pclose: No child processes

The error appears to be because the guestfish copy-in command
starts a tar subprocess.  It then calls wait(2).  It seems this
wait(2) is reaping the wrong process (the <! shell).  Really
it should call waitpid/wait4 instead to wait for the specific
process that it starts.

Version-Release number of selected component (if applicable):

1.15.9

Additional info:

Comment 1 Richard W.M. Jones 2011-12-07 12:13:23 UTC
Fixed in commit 98edfac1ee70bcf15ee7caebc306e11cdbbb0d9a.