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 |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/lxc/state.c b/src/lxc/state.c
index 437f11a..0bb307d 100644
--- a/src/lxc/state.c
+++ b/src/lxc/state.c
@@ -231,8 +231,13 @@ 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) {
+                       /* continue if select interrupted by signal */
+                       if (errno == EINTR)
+                               continue;
+                       else
+                               goto out_close;
+               }
 
                if (timeout != -1) {
                        retval = gettimeofday(&tv, NULL);
-- 
1.7.10.4


------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to