diff --git a/hack/vendor.sh b/hack/vendor.sh index aac0706e18..8dc659b6bb 100755 --- a/hack/vendor.sh +++ b/hack/vendor.sh @@ -48,7 +48,7 @@ esac # the following lines are in sorted order, FYI clone git github.com/Azure/go-ansiterm 388960b655244e76e24c75f48631564eaefade62 -clone git github.com/Microsoft/hcsshim v0.5.1 +clone git github.com/Microsoft/hcsshim v0.5.2 clone git github.com/Microsoft/go-winio v0.3.5 clone git github.com/Sirupsen/logrus f76d643702a30fbffecdfe50831e11881c96ceb3 https://github.com/aaronlehmann/logrus clone git github.com/docker/libtrust 9cbd2a1374f46905c68a4eb3694a130610adc62a diff --git a/vendor/src/github.com/Microsoft/hcsshim/hcsshim.go b/vendor/src/github.com/Microsoft/hcsshim/hcsshim.go index cd90a40b67..3cb3a299ff 100644 --- a/vendor/src/github.com/Microsoft/hcsshim/hcsshim.go +++ b/vendor/src/github.com/Microsoft/hcsshim/hcsshim.go @@ -1,4 +1,4 @@ -// Shim for the Host Compute Service (HSC) to manage Windows Server +// Shim for the Host Compute Service (HCS) to manage Windows Server // containers and Hyper-V containers. package hcsshim diff --git a/vendor/src/github.com/Microsoft/hcsshim/hnsfuncs.go b/vendor/src/github.com/Microsoft/hcsshim/hnsfuncs.go index 7bf46a6881..57ad519891 100644 --- a/vendor/src/github.com/Microsoft/hcsshim/hnsfuncs.go +++ b/vendor/src/github.com/Microsoft/hcsshim/hnsfuncs.go @@ -30,6 +30,11 @@ type VsidPolicy struct { VSID uint } +type PaPolicy struct { + Type string + PA string +} + // Subnet is assoicated with a network and represents a list // of subnets available to the network type Subnet struct { @@ -58,6 +63,7 @@ type HNSNetwork struct { DNSSuffix string `json:",omitempty"` DNSServerList string `json:",omitempty"` DNSServerCompartment uint32 `json:",omitempty"` + ManagementIP string `json:",omitempty"` } // HNSEndpoint represents a network endpoint in HNS @@ -74,6 +80,7 @@ type HNSEndpoint struct { GatewayAddress string `json:",omitempty"` EnableInternalDNS bool `json:",omitempty"` PrefixLength uint8 `json:",omitempty"` + IsRemoteEndpoint bool `json:",omitempty"` } type hnsNetworkResponse struct { diff --git a/vendor/src/github.com/Microsoft/hcsshim/preparelayer.go b/vendor/src/github.com/Microsoft/hcsshim/preparelayer.go index 69b5fe045e..2791683467 100644 --- a/vendor/src/github.com/Microsoft/hcsshim/preparelayer.go +++ b/vendor/src/github.com/Microsoft/hcsshim/preparelayer.go @@ -1,6 +1,12 @@ package hcsshim -import "github.com/Sirupsen/logrus" +import ( + "sync" + + "github.com/Sirupsen/logrus" +) + +var prepareLayerLock sync.Mutex // PrepareLayer finds a mounted read-write layer matching layerId and enables the // the filesystem filter for use on that layer. This requires the paths to all @@ -24,6 +30,10 @@ func PrepareLayer(info DriverInfo, layerId string, parentLayerPaths []string) er return err } + // This lock is a temporary workaround for a Windows bug. Only allowing one + // call to prepareLayer at a time vastly reduces the chance of a timeout. + prepareLayerLock.Lock() + defer prepareLayerLock.Unlock() err = prepareLayer(&infop, layerId, layers) if err != nil { err = makeErrorf(err, title, "layerId=%s flavour=%d", layerId, info.Flavour)