[
https://issues.apache.org/jira/browse/GEODE-480?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14971538#comment-14971538
]
Jason Huynh commented on GEODE-480:
-----------------------------------
This actually revealed a product issue. The numValues integer in RangeIndex is
not thread safe in that the process in updating the value is not atomic.
The test itself (along with all tests in this class as well as many other
similar written tests that use the PRQueryDUnitHelper) needs to be fixed as it
has misleading thread join timeout times as well as heavy reliance on
randomness.
> CI failure: ConcurrentIndexUpdateWithoutWLDUnitTest.testRangeIndex
> ------------------------------------------------------------------
>
> Key: GEODE-480
> URL: https://issues.apache.org/jira/browse/GEODE-480
> Project: Geode
> Issue Type: Bug
> Reporter: Sai Boorlagadda
> Assignee: Jason Huynh
> Labels: CI
>
> {noformat}
> Error Message
> dunit.RMIException: While invoking
> com.gemstone.gemfire.cache.query.internal.index.ConcurrentIndexUpdateWithoutWLDUnitTest$1.run
> in VM 0 running on Host angola.gemstone.com with 4 VMs
> Stacktrace
> dunit.RMIException: While invoking
> com.gemstone.gemfire.cache.query.internal.index.ConcurrentIndexUpdateWithoutWLDUnitTest$1.run
> in VM 0 running on Host angola.gemstone.com with 4 VMs
> at dunit.VM.invoke(VM.java:360)
> at dunit.VM.invoke(VM.java:303)
> at dunit.VM.invoke(VM.java:257)
> at
> com.gemstone.gemfire.cache.query.internal.index.ConcurrentIndexUpdateWithoutWLDUnitTest.testRangeIndex(ConcurrentIndexUpdateWithoutWLDUnitTest.java:208)
> 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.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
> 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.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
> 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: No of index entries NOT
> equals the No of RegionEntries for index:secidIndex expected:<36> but was:<37>
> at junit.framework.Assert.fail(Assert.java:57)
> at junit.framework.Assert.failNotEquals(Assert.java:329)
> at junit.framework.Assert.assertEquals(Assert.java:78)
> at junit.framework.Assert.assertEquals(Assert.java:234)
> at junit.framework.TestCase.assertEquals(TestCase.java:401)
> at
> com.gemstone.gemfire.cache.query.internal.index.ConcurrentIndexUpdateWithoutWLDUnitTest$IndexValidator.validate(ConcurrentIndexUpdateWithoutWLDUnitTest.java:626)
> at
> com.gemstone.gemfire.cache.query.internal.index.ConcurrentIndexUpdateWithoutWLDUnitTest$IndexValidator.validate(ConcurrentIndexUpdateWithoutWLDUnitTest.java:439)
> at
> com.gemstone.gemfire.cache.query.internal.index.ConcurrentIndexUpdateWithoutWLDUnitTest$1.run2(ConcurrentIndexUpdateWithoutWLDUnitTest.java:179)
> at
> com.gemstone.gemfire.cache30.CacheSerializableRunnable.run(CacheSerializableRunnable.java:46)
> at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at hydra.MethExecutor.executeObject(MethExecutor.java:258)
> at
> dunit.standalone.RemoteDUnitVM.executeMethodOnObject(RemoteDUnitVM.java:68)
> at sun.reflect.GeneratedMethodAccessor5.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/868282079.run(Unknown
> Source)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
> ... 3 more
> Standard Output
> Previously run tests: [PRQueryRemoteNodeExceptionDUnitTest,
> IndexTrackingQueryObserverDUnitTest,
> ConcurrentIndexOperationsOnOverflowRegionDUnitTest,
> MultiIndexCreationDUnitTest, InitializeIndexEntryDestroyQueryDUnitTest,
> ConcurrentIndexInitOnOverflowRegionDUnitTest,
> ConcurrentIndexUpdateWithInplaceObjectModFalseDUnitTest,
> CopyOnReadIndexDUnitTest, ConcurrentIndexUpdateWithoutWLDUnitTest]
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)