[ https://issues.apache.org/jira/browse/GEODE-430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15283334#comment-15283334 ]
ASF subversion and git services commented on GEODE-430: ------------------------------------------------------- Commit 884cf13b0ccace80d15ca11bcc3162f5169bdf73 in incubator-geode's branch refs/heads/develop from [~upthewaterspout] [ https://git-wip-us.apache.org/repos/asf?p=incubator-geode.git;h=884cf13 ] GEODE-430: Fixing races in UpdatePropagationDUnitTest This test was failing with a couple of different race conditions 1) It was not waiting for updates to make it to the second client, causing assertion failures. I added a wait. 2) It was occasionally using a connection that was previously made to the server before it was killed, causing an unexpected socket closed. I refactored the test to not use internal APIs to do the put, but instead verify that the event was not sent to the client using a listener. 3) In the PR version of the test, the PR single hop code can return different addresses for the server, resulting in the pool thinking it has two different servers when it only has one. I changed the wait to wait for a server with a given port to go away. I also did some cleanup of the test - extended JUnit4CacheTestCase, removed the waits, used awaitility, removed an almost duplicate disabled test method and added the one extra assertion from that duplicate test to the enabled test method. > CI failure: UpdatePropagationDUnitTest.testVerifyUpdatesReceivedByOtherClients > ------------------------------------------------------------------------------ > > Key: GEODE-430 > URL: https://issues.apache.org/jira/browse/GEODE-430 > Project: Geode > Issue Type: Bug > Components: client queues > Reporter: Kirk Lund > Assignee: Dan Smith > Labels: CI, Flaky > Fix For: 1.0.0-incubating.M3 > > > {noformat} > dunit.RMIException: While invoking > com.gemstone.gemfire.internal.cache.tier.sockets.UpdatePropagationDUnitTest.acquireConnectionsAndPutonK1andK2 > in VM 2 running on Host angola.gemstone.com with 4 VMs > at dunit.VM.invoke(VM.java:161) > at > com.gemstone.gemfire.internal.cache.tier.sockets.UpdatePropagationDUnitTest.testVerifyUpdatesReceivedByOtherClients(UpdatePropagationDUnitTest.java:369) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at junit.framework.TestCase.runTest(TestCase.java:176) > at junit.framework.TestCase.runBare(TestCase.java:141) > at junit.framework.TestResult$1.protect(TestResult.java:122) > at junit.framework.TestResult.runProtected(TestResult.java:142) > at junit.framework.TestResult.run(TestResult.java:125) > at junit.framework.TestCase.run(TestCase.java:129) > at junit.framework.TestSuite.runTest(TestSuite.java:252) > at junit.framework.TestSuite.run(TestSuite.java:247) > at > org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86) > at > org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:86) > at > org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:49) > at > org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:64) > at > org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:50) > at sun.reflect.GeneratedMethodAccessor170.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at > org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) > at > org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) > at > org.gradle.messaging.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32) > at > org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) > at com.sun.proxy.$Proxy2.processTestClass(Unknown Source) > at > org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:106) > at sun.reflect.GeneratedMethodAccessor169.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at > org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) > at > org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) > at > org.gradle.messaging.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:360) > at > org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Caused by: junit.framework.AssertionFailedError: while setting > acquireConnections > com.gemstone.gemfire.cache.client.ServerConnectivityException: Pool > unexpected closed socket on server connection=Pooled Connection to > angola.gemstone.com:24028: Connection[DESTROYED]). Server unreachable: could > not connect after 1 attempts > at junit.framework.Assert.fail(Assert.java:57) > at junit.framework.TestCase.fail(TestCase.java:227) > at > com.gemstone.gemfire.internal.cache.tier.sockets.UpdatePropagationDUnitTest.acquireConnectionsAndPutonK1andK2(UpdatePropagationDUnitTest.java:398) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at hydra.MethExecutor.execute(MethExecutor.java:189) > at > dunit.standalone.RemoteDUnitVM.executeMethodOnClass(RemoteDUnitVM.java:108) > at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:497) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) > at sun.rmi.transport.Transport$1.run(Transport.java:200) > at sun.rmi.transport.Transport$1.run(Transport.java:197) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:196) > at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$241(TCPTransport.java:683) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$1/388540337.run(Unknown > Source) > at java.security.AccessController.doPrivileged(Native Method) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) > ... 3 more > {noformat} > Previously run tests: [Bug37805DUnitTest, DurableClientQueueSizeDUnitTest, > EventIDVerificationDUnitTest, InterestRegrListenerDUnitTest, > InterestListFailoverDUnitTest, InterestResultPolicyDUnitTest, > InterestListEndpointPRDUnitTest, > VerifyUpdatesFromNonInterestEndPointDUnitTest, HAInterestPart2DUnitTest, > VerifyEventIDGenerationInP2PDUnitTest, UnregisterInterestDUnitTest, > DataSerializerPropogationDUnitTest, HAStartupAndFailoverDUnitTest, > DurableResponseMatrixDUnitTest, DestroyEntryPropagationDUnitTest, > DurableClientBug39997DUnitTest, ConflationDUnitTest, > UpdatePropagationDUnitTest] -- This message was sent by Atlassian JIRA (v6.3.4#6332)