]
Tristan Tarrant updated ISPN-11179:
-----------------------------------
Git Pull Request:
server-runtime test suite okhttp thread leaks
---------------------------------------------
Key: ISPN-11179
URL:
https://issues.redhat.com/browse/ISPN-11179
Project: Infinispan
Issue Type: Bug
Components: Server, Test Suite
Affects Versions: 10.1.0.Final
Reporter: Dan Berindei
Assignee: Dan Berindei
Priority: Major
Labels: testsuite_stability
Fix For: 10.1.3.Final
{{Testcontainers}} connects to the Docker daemon using the REST API over the Unix socket
at {{/var/run/docker.sock}} (using {{dockerjava}} and {{OkHttpClient}}).
Following logs requires a long-running connection, and {{LogUtils.attachConsumer}}
discards the stream from OkHttpClient/dockerjava, so the connection is never closed.
Perhaps the Testcontainers authors assumed that the docker server will kill the connection
when the container is stopped, but that doesn't happen.
{noformat}
23:30:59,573 ERROR [TestSuiteProgress] Test failed: UNKNOWN.ThreadLeakChecker
org.infinispan.commons.test.ThreadLeakChecker$LeakException: Leaked thread:
tc-okhttp-stream-513080861 << testng-ResilienceIT << UNKNOWN
at org.testcontainers.shaded.org.scalasbt.ipcsocket.UnixDomainSocketLibrary.read(Native
Method) ~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.shaded.org.scalasbt.ipcsocket.UnixDomainSocket$UnixDomainSocketInputStream.doRead(UnixDomainSocket.java:149)
~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.shaded.org.scalasbt.ipcsocket.UnixDomainSocket$UnixDomainSocketInputStream.read(UnixDomainSocket.java:136)
~[testcontainers-1.12.4.jar:?]
at java.io.FilterInputStream.read(FilterInputStream.java:133) ~[?:?]
at
org.testcontainers.dockerclient.transport.okhttp.UnixSocketFactory$1$1.read(UnixSocketFactory.java:46)
~[testcontainers-1.12.4.jar:?]
at org.testcontainers.shaded.okio.Okio$2.read(Okio.java:140)
~[testcontainers-1.12.4.jar:?]
at org.testcontainers.shaded.okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
~[testcontainers-1.12.4.jar:?]
at org.testcontainers.shaded.okio.RealBufferedSource.request(RealBufferedSource.java:72)
~[testcontainers-1.12.4.jar:?]
at org.testcontainers.shaded.okio.RealBufferedSource.require(RealBufferedSource.java:65)
~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.shaded.okio.RealBufferedSource.readHexadecimalUnsignedLong(RealBufferedSource.java:307)
~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.shaded.okhttp3.internal.http1.Http1ExchangeCodec$ChunkedSource.readChunkSize(Http1ExchangeCodec.java:492)
~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.shaded.okhttp3.internal.http1.Http1ExchangeCodec$ChunkedSource.read(Http1ExchangeCodec.java:471)
~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.shaded.okhttp3.internal.connection.Exchange$ResponseBodySource.read(Exchange.java:286)
~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.shaded.okio.RealBufferedSource.exhausted(RealBufferedSource.java:61)
~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.dockerclient.transport.okhttp.OkHttpInvocationBuilder$FramedSink.accept(OkHttpInvocationBuilder.java:363)
~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.dockerclient.transport.okhttp.OkHttpInvocationBuilder$FramedSink.accept(OkHttpInvocationBuilder.java:352)
~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.dockerclient.transport.okhttp.OkHttpInvocationBuilder.lambda$executeAndStream$3(OkHttpInvocationBuilder.java:314)
~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.dockerclient.transport.okhttp.OkHttpInvocationBuilder$$Lambda$1863/0x0000000100fd5840.run(Unknown
Source) ~[?:?]
at java.lang.Thread.run(Thread.java:834) ~[?:?]
Caused by: org.infinispan.commons.test.ThreadLeakChecker$LeakException:
testng-ResilienceIT << UNKNOWN
at
org.infinispan.commons.test.ThreadLeakChecker$ThreadInfoLocal.childValue(ThreadLeakChecker.java:107)
~[infinispan-commons-test-11.0.0-SNAPSHOT.jar:11.0.0-SNAPSHOT]
at
org.infinispan.commons.test.ThreadLeakChecker$ThreadInfoLocal.childValue(ThreadLeakChecker.java:104)
~[infinispan-commons-test-11.0.0-SNAPSHOT.jar:11.0.0-SNAPSHOT]
at java.lang.ThreadLocal$ThreadLocalMap.<init>(ThreadLocal.java:411) ~[?:?]
at java.lang.ThreadLocal.createInheritedMap(ThreadLocal.java:276) ~[?:?]
at java.lang.Thread.<init>(Thread.java:450) ~[?:?]
at java.lang.Thread.<init>(Thread.java:709) ~[?:?]
at java.lang.Thread.<init>(Thread.java:630) ~[?:?]
at
org.testcontainers.dockerclient.transport.okhttp.OkHttpInvocationBuilder.executeAndStream(OkHttpInvocationBuilder.java:319)
~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.dockerclient.transport.okhttp.OkHttpInvocationBuilder.executeAndStream(OkHttpInvocationBuilder.java:295)
~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.dockerclient.transport.okhttp.OkHttpInvocationBuilder.get(OkHttpInvocationBuilder.java:89)
~[testcontainers-1.12.4.jar:?]
at
com.github.dockerjava.core.exec.LogContainerCmdExec.execute0(LogContainerCmdExec.java:42)
~[testcontainers-1.12.4.jar:?]
at
com.github.dockerjava.core.exec.LogContainerCmdExec.execute0(LogContainerCmdExec.java:12)
~[testcontainers-1.12.4.jar:?]
at
com.github.dockerjava.core.exec.AbstrAsyncDockerCmdExec.execute(AbstrAsyncDockerCmdExec.java:56)
~[testcontainers-1.12.4.jar:?]
at
com.github.dockerjava.core.exec.AbstrAsyncDockerCmdExec.exec(AbstrAsyncDockerCmdExec.java:21)
~[testcontainers-1.12.4.jar:?]
at
com.github.dockerjava.core.exec.AbstrAsyncDockerCmdExec.exec(AbstrAsyncDockerCmdExec.java:12)
~[testcontainers-1.12.4.jar:?]
at
com.github.dockerjava.core.command.AbstrAsyncDockerCmd.exec(AbstrAsyncDockerCmd.java:21)
~[testcontainers-1.12.4.jar:?]
at org.testcontainers.utility.LogUtils.attachConsumer(LogUtils.java:99)
~[testcontainers-1.12.4.jar:?]
at org.testcontainers.utility.LogUtils.followOutput(LogUtils.java:36)
~[testcontainers-1.12.4.jar:?]
at org.testcontainers.utility.LogUtils.followOutput(LogUtils.java:51)
~[testcontainers-1.12.4.jar:?]
at org.testcontainers.containers.Container.followOutput(Container.java:391)
~[testcontainers-1.12.4.jar:?]
at java.util.ArrayList.forEach(ArrayList.java:1540) ~[?:?]
at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:412)
~[testcontainers-1.12.4.jar:?]
at
org.testcontainers.containers.GenericContainer.lambda$doStart$0(GenericContainer.java:317)
~[testcontainers-1.12.4.jar:?]
at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:81)
~[duct-tape-1.0.8.jar:?]
at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:315)
~[testcontainers-1.12.4.jar:?]
at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:302)
~[testcontainers-1.12.4.jar:?]
at
org.infinispan.server.test.ContainerInfinispanServerDriver.start(ContainerInfinispanServerDriver.java:146)
~[test-classes/:?]
at
org.infinispan.server.test.InfinispanServerDriver.start(InfinispanServerDriver.java:109)
~[test-classes/:?]
at
org.infinispan.server.test.InfinispanServerRule$1.evaluate(InfinispanServerRule.java:86)
~[test-classes/:?]
{noformat}