From 71605fc3179e521bd03e939d732b9076c1db1dd3 Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Wed, 28 Nov 2018 21:28:16 -0800 Subject: [PATCH 1/2] builder: set externalkey option for faster hook processing Signed-off-by: Tonis Tiigi (cherry picked from commit 1ad272c7e409476fd50fc701d45329b1e05bdec9) Upstream-commit: 8fe3b4d2ec06720fedfce2c2ef1b4fd7940961a6 Component: engine --- components/engine/builder/builder-next/executor_unix.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/engine/builder/builder-next/executor_unix.go b/components/engine/builder/builder-next/executor_unix.go index b3ea33c05c..9f2664225c 100644 --- a/components/engine/builder/builder-next/executor_unix.go +++ b/components/engine/builder/builder-next/executor_unix.go @@ -63,13 +63,13 @@ func (iface *lnInterface) init(c libnetwork.NetworkController, n libnetwork.Netw defer close(iface.ready) id := identity.NewID() - ep, err := n.CreateEndpoint(id) + ep, err := n.CreateEndpoint(id, libnetwork.CreateOptionDisableResolution()) if err != nil { iface.err = err return } - sbx, err := c.NewSandbox(id) + sbx, err := c.NewSandbox(id, libnetwork.OptionUseExternalKey()) if err != nil { iface.err = err return From 6709623942c2d9215186759e170b8d1cf33169e3 Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Wed, 28 Nov 2018 22:55:39 -0800 Subject: [PATCH 2/2] builder: delete sandbox in a goroutine for performance Signed-off-by: Tonis Tiigi (cherry picked from commit bcf1967dd0893b36c56c8c9b87c84246916484a1) Upstream-commit: 73911117b30ba74c42177b0f002bb4e98f2473f9 Component: engine --- .../engine/builder/builder-next/executor_unix.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/components/engine/builder/builder-next/executor_unix.go b/components/engine/builder/builder-next/executor_unix.go index 9f2664225c..3a11f85881 100644 --- a/components/engine/builder/builder-next/executor_unix.go +++ b/components/engine/builder/builder-next/executor_unix.go @@ -15,6 +15,7 @@ import ( "github.com/moby/buildkit/solver/pb" "github.com/moby/buildkit/util/network" specs "github.com/opencontainers/runtime-spec/specs-go" + "github.com/sirupsen/logrus" ) const networkName = "bridge" @@ -100,10 +101,10 @@ func (iface *lnInterface) Set(s *specs.Spec) { func (iface *lnInterface) Close() error { <-iface.ready - err := iface.sbx.Delete() - if iface.err != nil { - // iface.err takes precedence over cleanup errors - return iface.err - } - return err + go func() { + if err := iface.sbx.Delete(); err != nil { + logrus.Errorf("failed to delete builder network sandbox: %v", err) + } + }() + return iface.err }