Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
Description
org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest > testDynamicallyFindLocators FAILED
org.apache.geode.test.dunit.RMIException: While invoking org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest$3.call in VM 2 running on Host 97e556d10832 with 4 VMs
at org.apache.geode.test.dunit.VM.invoke(VM.java:387)
at org.apache.geode.test.dunit.VM.invoke(VM.java:357)
at org.apache.geode.test.dunit.VM.invoke(VM.java:325)
at org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest.putInVM(AutoConnectionSourceDUnitTest.java:470)
at org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest.putAndWaitForSuccess(AutoConnectionSourceDUnitTest.java:448)
at org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest.testDynamicallyFindLocators(AutoConnectionSourceDUnitTest.java:199)
Caused by:
org.apache.geode.cache.client.NoAvailableLocatorsException: Unable to connect to any locators in the list [LocatorAddress [socketInetAddress=97e556d10832/172.17.0.4:26078, hostname=97e556d10832, isIpString=false], LocatorAddress [socketInetAddress=97e556d10832/172.17.0.4:29796, hostname=172.17.0.4, isIpString=true]]
Attachments
Issue Links
- is related to
-
GEODE-9120 CI: ClientServerCacheOperationDUnitTest > largeObjectPutWithReadTimeoutThrowsException FAILED due with NoAvailableLocatorsException: Unable to connect to any locators in the list
- Open
- links to
Activity
Commit e9ada484eb671498e76698ef34b0b1d6fd28184b in geode's branch refs/heads/develop from geodeintegration
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=e9ada48 ]
GEODE-3523: Update locatorDiscoveryCallback after updating state
Some tests wait for this callback to be notified of new locators before
killing old locators. But The callback is called before the internal
state on the client is updated. So there was a race condition where the
test would know about the new locator, but the client code itself would
not use it yet.
This issue reoccurred even after this fix.
org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest > testDynamicallyFindLocators FAILED org.apache.geode.test.dunit.RMIException: While invoking org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest$3.call in VM 2 running on Host 45b2d9d9ceba with 4 VMs at org.apache.geode.test.dunit.VM.invoke(VM.java:401) at org.apache.geode.test.dunit.VM.invoke(VM.java:370) at org.apache.geode.test.dunit.VM.invoke(VM.java:336) at org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest.putInVM(AutoConnectionSourceDUnitTest.java:470) at org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest.putAndWaitForSuccess(AutoConnectionSourceDUnitTest.java:448) at org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest.testDynamicallyFindLocators(AutoConnectionSourceDUnitTest.java:199) Caused by: org.apache.geode.cache.client.NoAvailableLocatorsException: Unable to connect to any locators in the list [LocatorAddress [socketInetAddress=45b2d9d9ceba/172.17.0.3:24659, hostname=172.17.0.3, isIpString=true], LocatorAddress [socketInetAddress=45b2d9d9ceba/172.17.0.3:26744, hostname=45b2d9d9ceba, isIpString=false]]
I'm seeing the issue again. https://concourse.apachegeode-ci.info/teams/main/pipelines/release-1.6.0/jobs/DistributedTest/builds/1
Full stack trace:
org.apache.geode.test.dunit.RMIException: While invoking org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest$3.call in VM 2 running on Host ad250661093a with 4 VMs at org.apache.geode.test.dunit.VM.invoke(VM.java:436) at org.apache.geode.test.dunit.VM.invoke(VM.java:405) at org.apache.geode.test.dunit.VM.invoke(VM.java:371) at org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest.putInVM(AutoConnectionSourceDUnitTest.java:470) at org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest.putAndWaitForSuccess(AutoConnectionSourceDUnitTest.java:448) at org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest.testDynamicallyFindLocators(AutoConnectionSourceDUnitTest.java:199) 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:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55) at org.junit.rules.RunRules.evaluate(RunRules.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:114) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:57) at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:66) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) 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:498) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32) at org.gradle.internal.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:109) 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:498) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:147) at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:129) at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.geode.cache.client.NoAvailableLocatorsException: Unable to connect to any locators in the list [LocatorAddress [socketInetAddress=ad250661093a/172.17.0.2:23184, hostname=ad250661093a, isIpString=false], LocatorAddress [socketInetAddress=ad250661093a/172.17.0.2:26931, hostname=172.17.0.2, isIpString=true]] at org.apache.geode.cache.client.internal.AutoConnectionSourceImpl.findServer(AutoConnectionSourceImpl.java:158) at org.apache.geode.cache.client.internal.ConnectionFactoryImpl.createClientToServerConnection(ConnectionFactoryImpl.java:234) at org.apache.geode.cache.client.internal.pooling.ConnectionManagerImpl.borrowConnection(ConnectionManagerImpl.java:242) at org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:148) at org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:127) at org.apache.geode.cache.client.internal.PoolImpl.execute(PoolImpl.java:782) at org.apache.geode.cache.client.internal.PutOp.execute(PutOp.java:91) at org.apache.geode.cache.client.internal.ServerRegionProxy.put(ServerRegionProxy.java:159) at org.apache.geode.internal.cache.LocalRegion.serverPut(LocalRegion.java:3010) at org.apache.geode.internal.cache.LocalRegion.cacheWriteBeforePut(LocalRegion.java:3121) at org.apache.geode.internal.cache.AbstractRegionMap.invokeCacheWriter(AbstractRegionMap.java:2570) at org.apache.geode.internal.cache.AbstractRegionMap.basicPut(AbstractRegionMap.java:2329) at org.apache.geode.internal.cache.LocalRegion.virtualPut(LocalRegion.java:5631) at org.apache.geode.internal.cache.LocalRegionDataView.putEntry(LocalRegionDataView.java:152) at org.apache.geode.internal.cache.LocalRegion.basicPut(LocalRegion.java:5059) at org.apache.geode.internal.cache.LocalRegion.validatedPut(LocalRegion.java:1597) at org.apache.geode.internal.cache.LocalRegion.put(LocalRegion.java:1584) at org.apache.geode.internal.cache.AbstractRegion.put(AbstractRegion.java:318) at org.apache.geode.cache.client.internal.AutoConnectionSourceDUnitTest$3.call(AutoConnectionSourceDUnitTest.java:474) 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:498) at hydra.MethExecutor.executeObject(MethExecutor.java:244) at org.apache.geode.test.dunit.standalone.RemoteDUnitVM.executeMethodOnObject(RemoteDUnitVM.java:70) at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:361) 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$0(TCPTransport.java:683) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) ... 3 more
Commit c54e6189a46e4544e096cc817b920ad13b85efe9 in geode's branch refs/heads/feature/GEODE-3523 from bschuchardt
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=c54e618 ]
GEODE-3523 AutoConnectionSourceDUnitTest: testDynamicallyFindLocators failed
Refactored the test into two smaller tests, one that tests that a client
discovers another locator and another that tests that a client discovers
that a locator has gone away.
I did some general updating of the code in this class to
- replace SerializableCallable/Runnables with lambdas
- replace wait-loops with Awaitility
- replace use of AvailablePortHelper with wildcard binds
- replace ignoring of Exceptions with checks for the correct exception class
- replaced heavy use of deprecated methods with their non-deprecated versions
Commit 90665b2fb71bd477f6884f13cf42ea10f7c72747 in geode's branch refs/heads/develop from bschuchardt
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=90665b2 ]
GEODE-3523 AutoConnectionSourceDUnitTest: testDynamicallyFindLocators failed
Refactored the test into two smaller tests, one that tests that a client
discovers another locator and another that tests that a client discovers
that a locator has gone away.
I did some general updating of the code in this class to
- replace SerializableCallable/Runnables with lambdas
- replace wait-loops with Awaitility
- replace use of AvailablePortHelper with wildcard binds
- replace ignoring of Exceptions with checks for the correct exception class
- replaced heavy use of deprecated methods with their non-deprecated versions
This closes #1837
Commit 90665b2fb71bd477f6884f13cf42ea10f7c72747 in geode's branch refs/heads/feature/GEODE-4624 from bschuchardt
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=90665b2 ]
GEODE-3523 AutoConnectionSourceDUnitTest: testDynamicallyFindLocators failed
Refactored the test into two smaller tests, one that tests that a client
discovers another locator and another that tests that a client discovers
that a locator has gone away.
I did some general updating of the code in this class to
- replace SerializableCallable/Runnables with lambdas
- replace wait-loops with Awaitility
- replace use of AvailablePortHelper with wildcard binds
- replace ignoring of Exceptions with checks for the correct exception class
- replaced heavy use of deprecated methods with their non-deprecated versions
This closes #1837
failed again on ci