Description
Currently I am using a library to run some selenium tests (1) , while trying to use that latest one which is based on docker-java 3.2.12, I am now facing an endless read issue during the docker container stop operation, which I originally reported on (3), but as this seems to belong to this code repository, I also decided to report it here.
The main stacktrace is following in the thread dump that is hanging
"main" #1 prio=5 os_prio=31 cpu=2693.71ms elapsed=27.41s tid=0x00007fabe3809000 nid=0x2703 runnable [0x000070000f5a6000]
java.lang.Thread.State: RUNNABLE
at com.github.dockerjava.transport.DomainSocket.read(Native Method)
at com.github.dockerjava.transport.DomainSocket.read(DomainSocket.java:79)
at com.github.dockerjava.transport.DomainSocket.access$200(DomainSocket.java:35)
at com.github.dockerjava.transport.DomainSocket$DomainSocketInputStream.read(DomainSocket.java:164)
at org.apache.hc.core5.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:149)
at org.apache.hc.core5.http.impl.io.BHttpConnectionBase.fillInputBuffer(BHttpConnectionBase.java:265)
at org.apache.hc.core5.http.impl.io.BHttpConnectionBase.isStale(BHttpConnectionBase.java:295)
at org.apache.hc.core5.http.impl.io.DefaultBHttpClientConnection.isStale(DefaultBHttpClientConnection.java:67)
at org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager$1.get(PoolingHttpClientConnectionManager.java:287)
- locked <0x000000061f37b6b0> (a org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager$1)
at org.apache.hc.client5.http.impl.classic.InternalExecRuntime.acquireEndpoint(InternalExecRuntime.java:109)
at org.apache.hc.client5.http.impl.classic.ConnectExec.execute(ConnectExec.java:119)
at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
at org.apache.hc.client5.http.impl.classic.ProtocolExec.execute(ProtocolExec.java:175)
at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
at org.apache.hc.client5.http.impl.classic.HttpRequestRetryExec.execute(HttpRequestRetryExec.java:96)
at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
at org.apache.hc.client5.http.impl.classic.ContentCompressionExec.execute(ContentCompressionExec.java:133)
at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
at org.apache.hc.client5.http.impl.classic.RedirectExec.execute(RedirectExec.java:115)
at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at org.apache.hc.client5.http.impl.classic.InternalHttpClient.doExecute(InternalHttpClient.java:170)
at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:67)
at com.github.dockerjava.httpclient5.ApacheDockerHttpClientImpl.execute(ApacheDockerHttpClientImpl.java:183)
at com.github.dockerjava.httpclient5.ApacheDockerHttpClient.execute(ApacheDockerHttpClient.java:9)
at com.github.dockerjava.core.DefaultInvocationBuilder.execute(DefaultInvocationBuilder.java:228)
at com.github.dockerjava.core.DefaultInvocationBuilder.post(DefaultInvocationBuilder.java:102)
at com.github.dockerjava.core.exec.StopContainerCmdExec.execute(StopContainerCmdExec.java:33)
at com.github.dockerjava.core.exec.StopContainerCmdExec.execute(StopContainerCmdExec.java:13)
at com.github.dockerjava.core.exec.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:21)
at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:35)
at com.github.dockerjava.core.command.StopContainerCmdImpl.exec(StopContainerCmdImpl.java:63)
at io.github.bonigarcia.wdm.docker.DockerService.stopContainer(DockerService.java:326)
It looks like known of the timeout that could exist in the different above layers are used.
The operating system which I run this code is a Mac OS 11.6 (Big Sur)
Before that I used the previous version of selenium-jupiter (4) without any issues which was based on docker-java 3.2.7
Environment:
Mac OS 11.6 (Big Sur)
Docker version 20.10.7, build f0df350
java version "11.0.8" 2020-07-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.8+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.8+10-LTS, mixed mode)
(1) https://github.com/bonigarcia/selenium-jupiter
(2) https://github.com/bonigarcia/webdrivermanager/blob/master/pom.xml#L13
(3) bonigarcia/selenium-jupiter#200
(4) https://github.com/bonigarcia/selenium-jupiter/tree/selenium-jupiter-3.4.0