Disable TestExecWindowsOpenHandles on RS5 temporarily
@@ -11,6 +11,7 @@ import (
"reflect"
"runtime"
"sort"
+ "strconv"
"strings"
"sync"
"time"
@@ -19,6 +20,7 @@ import (
"github.com/docker/docker/integration-cli/checker"
"github.com/docker/docker/integration-cli/cli"
"github.com/docker/docker/integration-cli/cli/build"
+ "github.com/docker/docker/pkg/parsers/kernel"
"github.com/go-check/check"
"gotest.tools/icmd"
)
@@ -543,6 +545,38 @@ func (s *DockerSuite) TestExecEnvLinksHost(c *check.C) {
func (s *DockerSuite) TestExecWindowsOpenHandles(c *check.C) {
testRequires(c, DaemonIsWindows)
+
+ if runtime.GOOS == "windows" {
+ v, err := kernel.GetKernelVersion()
+ c.Assert(err, checker.IsNil)
+ build, _ := strconv.Atoi(strings.Split(strings.SplitN(v.String(), " ", 3)[2][1:], ".")[0])
+ if build >= 17743 {
+ c.Skip("Temporarily disabled on RS5 17743+ builds due to platform bug")
+
+ // This is being tracked internally. @jhowardmsft. Summary of failure
+ // from an email in early July 2018 below:
+ //
+ // Platform regression. In cmd.exe by the look of it. I can repro
+ // it outside of CI. It fails the same on 17681, 17676 and even as
+ // far back as 17663, over a month old. From investigating, I can see
+ // what's happening in the container, but not the reason. The test
+ // starts a long-running container based on the Windows busybox image.
+ // It then adds another process (docker exec) to that container to
+ // sleep. It loops waiting for two instances of busybox.exe running,
+ // and cmd.exe to quit. What's actually happening is that the second
+ // exec hangs indefinitely, and from docker top, I can see
+ // "OpenWith.exe" running.
+
+ //Manual repro would be
+ //# Start the first long-running container
+ //docker run --rm -d --name test busybox sleep 300
+
+ //# In another window, docker top test. There should be a single instance of busybox.exe running
+ //# In a third window, docker exec test cmd /c start sleep 10 NOTE THIS HANGS UNTIL 5 MIN TIMEOUT
+ //# In the second window, run docker top test. Note that OpenWith.exe is running, one cmd.exe and only one busybox. I would expect no "OpenWith" and two busybox.exe's.
+ }
+ }
+
runSleepingContainer(c, "-d", "--name", "test")
exec := make(chan bool)
go func() {
