[libvirt] [PATCH 3/3]: Read cmd stdout + stderr in virRun
Jim Meyering
jim at meyering.net
Thu Oct 30 20:34:10 UTC 2008
Cole Robinson <crobinso at redhat.com> 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
>
> Thanks,
> Cole
>
> commit af7d94392bc89fd0645514cd13a2186ca5224dfc
> Author: Cole Robinson <crobinso at redhat.com>
> Date: Thu Oct 30 13:46:06 2008 -0400
>
> Capture command stdout and stderr in virRun
>
> diff --git a/src/util.c b/src/util.c
> index e59e25c..8d624b2 100644
> --- a/src/util.c
> +++ b/src/util.c
> @@ -33,6 +33,9 @@
> #include <errno.h>
> #include <sys/types.h>
> #include <sys/stat.h>
> +#if HAVE_SYS_POLL_H
> +#include <sys/poll.h>
> +#endif
Hi Cole,
This looks fine to me.
One minor suggestion:
You can replace the above 3 lines with just
#include <poll.h>
<poll.h> is POSIX-specified, and guaranteed to be usable,
since we're now using gnulib's "poll" module.
More information about the libvir-list
mailing list