From: "S.Çağlar Onur" <cag...@10ur.org>

Trying to start multiple containers concurrently may cause 
lxc_monitor_read_timeout to fail as select call could be interrupted by a 
signal, handle it.

Signed-off-by: S.Çağlar Onur <cag...@10ur.org>
---
 src/lxc/state.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/lxc/state.c b/src/lxc/state.c
index 437f11a..60da22c 100644
--- a/src/lxc/state.c
+++ b/src/lxc/state.c
@@ -231,8 +231,11 @@ extern int lxc_wait(const char *lxcname, const char 
*states, int timeout, const
                                goto out_close;
                        curtime = tv.tv_sec;
                }
-               if (lxc_monitor_read_timeout(fd, &msg, timeout) < 0)
-                       goto out_close;
+               if (lxc_monitor_read_timeout(fd, &msg, timeout) < 0) {
+                       /* try again if select interrupted by signal */
+                       if (errno != EINTR)
+                               goto out_close;
+               }
 
                if (timeout != -1) {
                        retval = gettimeofday(&tv, NULL);
-- 
1.7.10.4


------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to