[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH 2/4] lxc: ignore ECHILD errors during vm cleanup



This patch ignores ECHILD from waitpid().  This can happen if libvirtd was
restarted and the container processes are no longer the children of libvirtd.

-- 
Best Regards,
Dave Leskovec
IBM Linux Technology Center
Open Virtualization

---
 src/lxc_driver.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Index: b/src/lxc_driver.c
===================================================================
--- a/src/lxc_driver.c	2008-05-29 14:34:27.000000000 -0700
+++ b/src/lxc_driver.c	2008-05-29 14:34:45.000000000 -0700
@@ -943,7 +943,7 @@
     while (((waitRc = waitpid(vm->def->id, &childStatus, 0)) == -1) &&
            errno == EINTR);
 
-    if (waitRc != vm->def->id) {
+    if ((waitRc != vm->def->id) && (errno != ECHILD)) {
         lxcError(NULL, NULL, VIR_ERR_INTERNAL_ERROR,
                  _("waitpid failed to wait for container %d: %d %s"),
                  vm->def->id, waitRc, strerror(errno));
@@ -976,7 +976,7 @@
     while (((waitRc = waitpid(vm->pid, &childStatus, 0)) == -1) &&
            errno == EINTR);
 
-    if (waitRc != vm->pid) {
+    if ((waitRc != vm->pid) && (errno != ECHILD)) {
         lxcError(NULL, NULL, VIR_ERR_INTERNAL_ERROR,
                  _("waitpid failed to wait for tty %d: %d %s"),
                  vm->pid, waitRc, strerror(errno));


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]