[ 
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)

Reply via email to