The following pull request was submitted through Github.
It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/2595

This e-mail was sent by the LXC bot, direct replies will not reach the author
unless they happen to be subscribed to this list.

=== Description (from pull-request) ===

From c591d8d730841dc53b9214f3c4181452a9681430 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com>
Date: Fri, 4 Nov 2016 14:48:18 -0600
Subject: [PATCH 1/2] Timeout container freeze on stop
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Sometimes we can't actually freeze the container, so give up after 5
seconds, restore the processes so that LXC can then normally kill them.

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
---
 lxd/container_lxc.go | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/lxd/container_lxc.go b/lxd/container_lxc.go
index f8e840a..89301ce 100644
--- a/lxd/container_lxc.go
+++ b/lxd/container_lxc.go
@@ -1750,7 +1750,17 @@ func (c *containerLXC) Stop(stateful bool) error {
        }
 
        // Attempt to freeze the container first, helps massively with fork 
bombs
-       c.Freeze()
+       freezer := make(chan bool, 1)
+       go func() {
+               c.Freeze()
+               freezer <- true
+       }()
+
+       select {
+       case <-freezer:
+       case <-time.After(time.Second * 5):
+               c.Unfreeze()
+       }
 
        if err := c.c.Stop(); err != nil {
                op.Done(err)

From fcd2a0bbbcb7191ab4fed751656a90c6fb26e30e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com>
Date: Fri, 4 Nov 2016 14:51:11 -0600
Subject: [PATCH 2/2] Add /snap/bin to PATH even if only /snap exists
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

/snap/bin is created later on by snapd, so lets just assume that it will
exist and append /snap/bin so long as /snap exists.

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
---
 lxd/container_exec.go | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lxd/container_exec.go b/lxd/container_exec.go
index 4272b4e..9a020c3 100644
--- a/lxd/container_exec.go
+++ b/lxd/container_exec.go
@@ -340,7 +340,7 @@ func containerExecPost(d *Daemon, r *http.Request) Response 
{
        _, ok := env["PATH"]
        if !ok {
                env["PATH"] = 
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
-               if shared.PathExists(fmt.Sprintf("%s/snap/bin", 
c.RootfsPath())) {
+               if shared.PathExists(fmt.Sprintf("%s/snap", c.RootfsPath())) {
                        env["PATH"] = fmt.Sprintf("%s:/snap/bin", env["PATH"])
                }
        }
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to