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));
--
Libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list