On Mon, Nov 03, 2008 at 02:54:23PM -0500, Cole Robinson wrote: > Daniel P. Berrange wrote: > > On Thu, Oct 30, 2008 at 02:06:35PM -0400, Cole Robinson wrote: > > > >> The attached patch is my second cut at reading > >> stdout and stderr of the command virRun kicks > >> off. There is no hard limit to the amount of > >> data we read now, and we use a poll loop to > >> avoid any possible full buffer issues. > >> > >> If stdout or stderr had any content, we DEBUG > >> it, and if the command appears to fail we > >> return stderr in the error message. So now, > >> trying to stop a logical pool with active > >> volumes will return: > >> > >> $ sudo virsh pool-destroy vgdata > >> libvir: error : internal error '/sbin/vgchange -an vgdata' exited with non-zero status 5 and signal 0: Can't deactivate volume group "vgdata" with 2 open logical volume(s) > >> error: Failed to destroy pool vgdata > >> > > <snip> > > > I think it'd be nice to move the I/O processing loop out of the > > virRun() function and into a separate helper functiion along the > > lines of > > > > virPipeReadUntilEOF(int outfd, int errfd, char **outbuf, char **errbuf) > > > > Daniel > > > > > Okay, updated patch attached. Also addresses the point Jim > raised about poll.h ACK, this version looks good to me. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list