Description
Running Docker Desktop Windows 2.1.0.5 and using JUnit 4 with annotations BeforeClass and AfterClass to setup a container that multiple Test cases can be run against. Each test case does an execInContainer. Each test works if run separately. If entire Test class is run then whatever the second execInContainer that is run will hang. Using docker command line tools I can exec a shell to the container created by testcontainers and see that the command specified in execInContainer is not running. If I attach a debugger I see that the execInContainer is parked waiting for a response. Stack trace:
park:-1, Unsafe (sun.misc)
park:175, LockSupport (java.util.concurrent.locks)
parkAndCheckInterrupt:836, AbstractQueuedSynchronizer (java.util.concurrent.locks)
doAcquireSharedInterruptibly:997, AbstractQueuedSynchronizer (java.util.concurrent.locks)
acquireSharedInterruptibly:1304, AbstractQueuedSynchronizer (java.util.concurrent.locks)
await:231, CountDownLatch (java.util.concurrent)
awaitCompletion:90, ResultCallbackTemplate (com.github.dockerjava.api.async)
execInContainer:80, ExecInContainerPattern (org.testcontainers.containers)
execInContainer:232, ContainerState (org.testcontainers.containers)
execInContainer:223, ContainerState (org.testcontainers.containers)
testCAStatus24:137, IntegrationErrorTest (org.jlab.epics2web)
invoke0:-1, NativeMethodAccessorImpl (sun.reflect)
invoke:62, NativeMethodAccessorImpl (sun.reflect)
invoke:43, DelegatingMethodAccessorImpl (sun.reflect)
invoke:498, Method (java.lang.reflect)
runReflectiveCall:59, FrameworkMethod$1 (org.junit.runners.model)
run:12, ReflectiveCallable (org.junit.internal.runners.model)
invokeExplosively:56, FrameworkMethod (org.junit.runners.model)
evaluate:17, InvokeMethod (org.junit.internal.runners.statements)
evaluate:306, ParentRunner$3 (org.junit.runners)
evaluate:100, BlockJUnit4ClassRunner$1 (org.junit.runners)
runLeaf:366, ParentRunner (org.junit.runners)
runChild:103, BlockJUnit4ClassRunner (org.junit.runners)
runChild:63, BlockJUnit4ClassRunner (org.junit.runners)
run:331, ParentRunner$4 (org.junit.runners)
schedule:79, ParentRunner$1 (org.junit.runners)
runChildren:329, ParentRunner (org.junit.runners)
access$100:66, ParentRunner (org.junit.runners)
evaluate:293, ParentRunner$2 (org.junit.runners)
evaluate:26, RunBefores (org.junit.internal.runners.statements)
evaluate:27, RunAfters (org.junit.internal.runners.statements)
evaluate:306, ParentRunner$3 (org.junit.runners)
run:413, ParentRunner (org.junit.runners)
run:137, JUnitCore (org.junit.runner)
startRunnerWithArgs:69, JUnit4IdeaTestRunner (com.intellij.junit4)
startRunnerWithArgs:33, IdeaTestRunner$Repeater (com.intellij.rt.junit)
prepareStreamsAndStart:220, JUnitStarter (com.intellij.rt.junit)
main:53, JUnitStarter (com.intellij.rt.junit)
Any tips to troubleshoot this? The project in question can be obtained from GitHub and uses Gradle to execute the tests: https://github.com/JeffersonLab/epics2web