whisklabs / docker-it-scala

Docker integration testing kit with Scala
MIT License
431 stars 91 forks source link

Pulling image timeout gives an error message about not being able to pull windows image #121

Open sumdog opened 6 years ago

sumdog commented 6 years ago

The following error message is misleading:

  com.github.dockerjava.api.exception.DockerClientException: Could not pull image: image operating system "windows" cannot be used on this platform

It seems to happen when the test library times out when pulling a docker image. If you do a docker pull <image_name> manually on your machine or the build server, the tests work fine.

gradle check
Download https://plugins.gradle.org/m2/org/eclipse/jgit/org.eclipse.jgit/maven-metadata.xml
Download https://plugins.gradle.org/m2/org/eclipse/jgit/org.eclipse.jgit.ui/maven-metadata.xml
Download https://plugins.gradle.org/m2/com/jcraft/jsch/maven-metadata.xml
Download https://plugins.gradle.org/m2/org/slf4j/slf4j-api/maven-metadata.xml
Download https://plugins.gradle.org/m2/org/ajoberstar/grgit/maven-metadata.xml
Download https://plugins.gradle.org/m2/com/google/guava/guava/maven-metadata.xml
> Configure project : 
Reckoned version: 0.1.0-milestone.0.1+ba988bf682fd99ba8f1cc1a1b1a10dd029e38b4e
Download http://artifactory.tmsglbdev.com/artifactory/exampleglobaldev-release/com/example/iw/core/0.0.32/core-0.0.32.pom
Download http://artifactory.tmsglbdev.com/artifactory/exampleglobaldev-release/com/example/iw/core/0.0.32/core-0.0.32.jar
> Task :compileTestScala 
Pruning sources from previous analysis, due to incompatible CompileSetup.
> Task :test 
Discovery starting.
14:32:50,363 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
14:32:50,363 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
14:32:50,364 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/Users/someuser/src/iw/iw-vertx-impl/build/resources/test/logback.xml]
14:32:50,364 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs multiple times on the classpath.
14:32:50,364 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [file:/Users/someuser/src/iw/iw-vertx-impl/build/resources/test/logback.xml]
14:32:50,364 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [jar:file:/Users/someuser/.m2/repository/com/example/iw-core-schema/0.0.11/iw-core-schema-0.0.11.jar!/logback.xml]
14:32:50,411 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
14:32:50,411 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
14:32:50,416 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
14:32:50,439 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - This appender no longer admits a layout as a sub-component, set an encoder instead.
14:32:50,439 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
14:32:50,439 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
14:32:50,440 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.example] to DEBUG
14:32:50,440 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[com.example]
14:32:50,440 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
14:32:50,441 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@7a56812e - Registering current configuration as safe fallback point
Discovery completed in 663 milliseconds.
Run starting. Expected test count is: 39
VertxRedlockSpec:
RedisRateLimiterSpec:
14:32:59.864 [ScalaTest-2] INFO  com.example.vertx.sql.VertxSqlSpec - Loading DB migration
14:32:59.875 [ScalaTest-2] INFO  com.example.SchemaSetup - Running migrations for 10.47.0.2:3306/dev (username: dev, password: ***)
VertxSqlSpec:
14:33:03.704 [ScalaTest-2] INFO  com.example.vertx.sql.VertxSqlSpec - 1 have been applied to database
14:33:03.704 [ScalaTest-2] INFO  com.example.vertx.sql.VertxSqlSpec - Loading Test Fixtures
Test migrations should
Jun 08, 2018 2:33:03 PM io.vertx.ext.asyncsql.impl.MYSQLClientImpl
INFO: Creating configuration for 10.47.0.2:3306
- result in tables (535 milliseconds)
- insertAndReturnKey for client should return keys (252 milliseconds)
- update client name should return true (99 milliseconds)
- update client name that doesn't exist should return false (49 milliseconds)
- Query for Client should return object (100 milliseconds)
- Query for Client should return List (61 milliseconds)
14:36:51.924 [ScalaTest-3] ERROR com.example.vertx.VertxRedlockSpec - Futures timed out after [120 seconds]
java.util.concurrent.TimeoutException: Futures timed out after [120 seconds]
        at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:255)
        at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:183)
        at scala.concurrent.Await$.$anonfun$ready$1(package.scala:191)
        at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
        at scala.concurrent.Await$.ready(package.scala:142)
        at com.whisk.docker.DockerKit.stopAllQuietly(DockerKit.scala:65)
        at com.whisk.docker.DockerKit.stopAllQuietly$(DockerKit.scala:63)
        at com.example.vertx.VertxRedlockSpec.stopAllQuietly(VertxRedlockSepc.scala:14)
        at com.whisk.docker.scalatest.DockerTestKit.afterAll(DockerTestKit.scala:25)
        at com.whisk.docker.scalatest.DockerTestKit.afterAll$(DockerTestKit.scala:24)
        at com.example.vertx.VertxRedlockSpec.afterAll(VertxRedlockSepc.scala:14)
        at org.scalatest.BeforeAndAfterAll.$anonfun$run$1(BeforeAndAfterAll.scala:225)
        at org.scalatest.Status.$anonfun$withAfterEffect$1(Status.scala:379)
        at org.scalatest.Status.$anonfun$withAfterEffect$1$adapted(Status.scala:375)
        at org.scalatest.FailedStatus$.whenCompleted(Status.scala:497)
        at org.scalatest.Status.withAfterEffect(Status.scala:375)
        at org.scalatest.Status.withAfterEffect$(Status.scala:373)
        at org.scalatest.FailedStatus$.withAfterEffect(Status.scala:469)
        at org.scalatest.BeforeAndAfterAll.run(BeforeAndAfterAll.scala:224)
        at org.scalatest.BeforeAndAfterAll.run$(BeforeAndAfterAll.scala:208)
        at com.example.vertx.VertxRedlockSpec.run(VertxRedlockSepc.scala:14)
        at org.scalatest.tools.SuiteRunner.run(SuiteRunner.scala:45)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
com.example.vertx.VertxRedlockSpec *** ABORTED *** (4 minutes, 1 second)
  com.github.dockerjava.api.exception.DockerClientException: Could not pull image: image operating system "windows" cannot be used on this platform
  at com.github.dockerjava.core.command.PullImageResultCallback.awaitSuccess(PullImageResultCallback.java:50)
  at com.whisk.docker.impl.dockerjava.DockerJavaExecutor.$anonfun$pullImage$1(DockerJavaExecutor.scala:183)
  at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
  at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:655)
  at scala.util.Success.$anonfun$map$1(Try.scala:251)
  at scala.util.Success.map(Try.scala:209)
  at scala.concurrent.Future.$anonfun$map$1(Future.scala:289)
  at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:29)
  at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:29)
  at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
  ...
14:36:52.015 [ScalaTest-4] ERROR c.t.iw.vertx.RedisRateLimiterSpec - Futures timed out after [120 seconds]
java.util.concurrent.TimeoutException: Futures timed out after [120 seconds]
        at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:255)
        at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:183)
        at scala.concurrent.Await$.$anonfun$ready$1(package.scala:191)
        at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
        at scala.concurrent.Await$.ready(package.scala:142)
        at com.whisk.docker.DockerKit.stopAllQuietly(DockerKit.scala:65)
        at com.whisk.docker.DockerKit.stopAllQuietly$(DockerKit.scala:63)
        at com.example.vertx.RedisRateLimiterSpec.stopAllQuietly(RedisRateLimiterSpec.scala:16)
        at com.whisk.docker.scalatest.DockerTestKit.afterAll(DockerTestKit.scala:25)
        at com.whisk.docker.scalatest.DockerTestKit.afterAll$(DockerTestKit.scala:24)
        at com.example.vertx.RedisRateLimiterSpec.afterAll(RedisRateLimiterSpec.scala:16)
        at org.scalatest.BeforeAndAfterAll.$anonfun$run$1(BeforeAndAfterAll.scala:225)
        at org.scalatest.Status.$anonfun$withAfterEffect$1(Status.scala:379)
        at org.scalatest.Status.$anonfun$withAfterEffect$1$adapted(Status.scala:375)
        at org.scalatest.FailedStatus$.whenCompleted(Status.scala:497)
        at org.scalatest.Status.withAfterEffect(Status.scala:375)
        at org.scalatest.Status.withAfterEffect$(Status.scala:373)
        at org.scalatest.FailedStatus$.withAfterEffect(Status.scala:469)
        at org.scalatest.BeforeAndAfterAll.run(BeforeAndAfterAll.scala:224)
        at org.scalatest.BeforeAndAfterAll.run$(BeforeAndAfterAll.scala:208)
        at com.example.vertx.RedisRateLimiterSpec.run(RedisRateLimiterSpec.scala:16)
        at org.scalatest.tools.SuiteRunner.run(SuiteRunner.scala:45)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
com.example.vertx.RedisRateLimiterSpec *** ABORTED *** (4 minutes, 1 second)
  com.github.dockerjava.api.exception.DockerClientException: Could not pull image: image operating system "windows" cannot be used on this platform
  at com.github.dockerjava.core.command.PullImageResultCallback.awaitSuccess(PullImageResultCallback.java:50)
  at com.whisk.docker.impl.dockerjava.DockerJavaExecutor.$anonfun$pullImage$1(DockerJavaExecutor.scala:183)
  at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
  at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:655)
  at scala.util.Success.$anonfun$map$1(Try.scala:251)
  at scala.util.Success.map(Try.scala:209)
  at scala.concurrent.Future.$anonfun$map$1(Future.scala:289)
  at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:29)
  at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:29)
  at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
  ...
Run completed in 4 minutes, 1 second.
Total number of tests run: 6
Suites: completed 2, aborted 2
Tests: succeeded 6, failed 0, canceled 0, ignored 0, pending 0
*** 2 SUITES ABORTED ***
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':test'.
> There were failing tests. See the report at: file:///Users/someuser/src/iw/iw-vertx-impl/build/reports/tests/test/index.html
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
* Get more help at https://help.gradle.org
BUILD FAILED in 4m 35s
6 actionable tasks: 6 executed