[
https://issues.apache.org/jira/browse/GEODE-6919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16872791#comment-16872791
]
Shelley Lynn Hughes-Godfrey commented on GEODE-6919:
----------------------------------------------------
This looks like a fairly simple test ...
The controller vm is the server ... which creates a PR region "region1" with a
SleepyCacheWriter() ... basically it sets a field to say it has started ...
then waits to be told to stop.
The client creates a PROXY of the same region and does a single put.
We expect this to invoke the cacheWriter in the server, but it looks like the
client put fails:
{noformat}
[vm0] [info 2019/06/25 21:20:48.591 GMT <RMI TCP
Connection(1)-172.17.0.19> tid=0x20] Got result: EXCEPTION_OCCURRED
[vm0] org.apache.geode.cache.client.AllConnectionsInUseException
[vm0] at
org.apache.geode.cache.client.internal.pooling.ConnectionManagerImpl.borrowConnection(ConnectionManagerImpl.java:297)
[vm0] at
org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:125)
[vm0] at
org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:108)
[vm0] at
org.apache.geode.cache.client.internal.PoolImpl.execute(PoolImpl.java:770)
[vm0] at org.apache.geode.cache.client.internal.PutOp.execute(PutOp.java:89)
[vm0] at
org.apache.geode.cache.client.internal.ServerRegionProxy.put(ServerRegionProxy.java:156)
[vm0] at
org.apache.geode.internal.cache.LocalRegion.serverPut(LocalRegion.java:3024)
[vm0] at
org.apache.geode.internal.cache.LocalRegion.cacheWriteBeforePut(LocalRegion.java:3141)
[vm0] at
org.apache.geode.internal.cache.ProxyRegionMap.basicPut(ProxyRegionMap.java:238)
[vm0] at
org.apache.geode.internal.cache.LocalRegion.virtualPut(LocalRegion.java:5572)
[vm0] at
org.apache.geode.internal.cache.LocalRegionDataView.putEntry(LocalRegionDataView.java:162)
[vm0] at
org.apache.geode.internal.cache.LocalRegion.basicPut(LocalRegion.java:5031)
[vm0] at
org.apache.geode.internal.cache.LocalRegion.validatedPut(LocalRegion.java:1623)
[vm0] at
org.apache.geode.internal.cache.LocalRegion.put(LocalRegion.java:1610)
[vm0] at
org.apache.geode.internal.cache.AbstractRegion.put(AbstractRegion.java:429)
[vm0] at
org.apache.geode.internal.cache.tier.sockets.AcceptorImplDUnitTest.lambda$testAcceptorImplCloseCleansUpWithHangingConnection$b2a1707f$1(AcceptorImplDUnitTest.java:178)
[vm0] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[vm0] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[vm0] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[vm0] at java.lang.reflect.Method.invoke(Method.java:498)
[vm0] at
org.apache.geode.test.dunit.internal.MethodInvoker.executeObject(MethodInvoker.java:123)
[vm0] at
org.apache.geode.test.dunit.internal.RemoteDUnitVM.executeMethodOnObject(RemoteDUnitVM.java:69)
[vm0] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[vm0] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[vm0] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[vm0] at java.lang.reflect.Method.invoke(Method.java:498)
[vm0] at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
[vm0] at sun.rmi.transport.Transport$1.run(Transport.java:200)
[vm0] at sun.rmi.transport.Transport$1.run(Transport.java:197)
[vm0] at java.security.AccessController.doPrivileged(Native Method)
[vm0] at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
[vm0] at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
[vm0] at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
[vm0] at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
[vm0] at java.security.AccessController.doPrivileged(Native Method)
[vm0] at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
[vm0] at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[vm0] at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[vm0] at java.lang.Thread.run(Thread.java:748)
[vm0] from
org.apache.geode.internal.cache.tier.sockets.AcceptorImplDUnitTest$$Lambda$17/148174679.run
with 0 args on object:
org.apache.geode.internal.cache.tier.sockets.AcceptorImplDUnitTest$$Lambda$17/148174679@167c163b
(took 6118 ms)
{noformat}
Perhaps there are still connections waiting from a previously run test:
{noformat}
Previously run tests: [AcceptorImplDUnitTest.testAcceptorImplCloseCleansUp]
{noformat}
> CI Failure:
> org.apache.geode.internal.cache.tier.sockets.AcceptorImplDUnitTest >
> testAcceptorImplCloseCleansUpWithHangingConnection FAILED
> ------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: GEODE-6919
> URL: https://issues.apache.org/jira/browse/GEODE-6919
> Project: Geode
> Issue Type: Bug
> Components: client/server
> Affects Versions: 1.10.0
> Reporter: Shelley Lynn Hughes-Godfrey
> Priority: Major
>
> This failure occurred in CI:
> https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/DistributedTestOpenJDK8/builds/837
> {noformat}
> org.apache.geode.internal.cache.tier.sockets.AcceptorImplDUnitTest >
> testAcceptorImplCloseCleansUpWithHangingConnection FAILED
> org.awaitility.core.ConditionTimeoutException: Condition with alias
> 'Cache writer starts' didn't complete within 300 seconds because condition
> with lambda expression in
> org.apache.geode.internal.cache.tier.sockets.AcceptorImplDUnitTest that uses
> org.apache.geode.internal.cache.tier.sockets.AcceptorImplDUnitTest$SleepyCacheWriter
> was not fulfilled.
> at
> org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:145)
> at
> org.awaitility.core.CallableCondition.await(CallableCondition.java:79)
> at
> org.awaitility.core.CallableCondition.await(CallableCondition.java:27)
> at
> org.awaitility.core.ConditionFactory.until(ConditionFactory.java:902)
> at
> org.awaitility.core.ConditionFactory.until(ConditionFactory.java:860)
> at
> org.apache.geode.internal.cache.tier.sockets.AcceptorImplDUnitTest.testAcceptorImplCloseCleansUpWithHangingConnection(AcceptorImplDUnitTest.java:182)
> {noformat}
> Artifacts are available here:
> {noformat}
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-= Test Results URI
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> http://files.apachegeode-ci.info/builds/apache-develop-main/1.10.0-SNAPSHOT.0403/test-results/distributedTest/1561499094/
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Test report artifacts from this job are available at:
> http://files.apachegeode-ci.info/builds/apache-develop-main/1.10.0-SNAPSHOT.0403/test-artifacts/1561499094/distributedtestfiles-OpenJDK8-1.10.0-SNAPSHOT.0403.tgz
> {noformat}
> Test description:
> {noformat}
> /**
> * GEODE-2324. There was a bug where, due to an uncaught exception,
> `AcceptorImpl.close()` was
> * short-circuiting and failing to clean up properly.
> *
> * What this test does is start a Cache and hook the Acceptor to interrupt
> the thread before the
> * place where an InterruptedException could be thrown. It interrupts the
> thread, and checks that
> * the thread has terminated normally without short-circuiting. It doesn't
> check that every part
> * of the AcceptorImpl has shut down properly -- that seems both difficult
> to check (especially
> * since the fields are private) and implementation-dependent.
> */
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)