From: Richard W.M. Jones Date: Mon, 29 Jun 2009 15:22:10 +0000 (+0100) Subject: Fix for 'broken pipe' error when qemu dies (RHBZ#508713). X-Git-Tag: 1.0.54~3^2 X-Git-Url: http://git.annexia.org/?a=commitdiff_plain;h=ad475104ec7fae456d3309cbf4261b893ed160bb;p=libguestfs.git Fix for 'broken pipe' error when qemu dies (RHBZ#508713). --- diff --git a/src/guestfs.c b/src/guestfs.c index fdf5cd3..016d803 100644 --- a/src/guestfs.c +++ b/src/guestfs.c @@ -1677,7 +1677,7 @@ static void sock_write_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data, int watch, int fd, int events) { - int n; + int n, err; if (g->verbose) fprintf (stderr, @@ -1701,8 +1701,11 @@ sock_write_event (struct guestfs_main_loop *ml, guestfs_h *g, void *data, n = write (g->sock, g->msg_out + g->msg_out_pos, g->msg_out_size - g->msg_out_pos); if (n == -1) { - if (errno != EAGAIN) + err = errno; + if (err != EAGAIN) perrorf (g, "write"); + if (err == EPIPE) /* Disconnected from guest (RHBZ#508713). */ + child_cleanup (g); return; }