Dan Smith created GEODE-2280:
--------------------------------

             Summary: Lucene indexes are not working with PR accessors
                 Key: GEODE-2280
                 URL: https://issues.apache.org/jira/browse/GEODE-2280
             Project: Geode
          Issue Type: Bug
          Components: lucene
            Reporter: Dan Smith


I discovered that if you try to create a system with lucene indexes and 
partitioned region accessors, you get this error if you define the index on the 
accessor

{noformat}
java.lang.IllegalStateException: The data region to create lucene index should 
be with storage
        at 
org.apache.geode.cache.lucene.internal.LuceneIndexForPartitionedRegion.createRepositoryManager(LuceneIndexForPartitionedRegion.java:63)
        at 
org.apache.geode.cache.lucene.internal.LuceneIndexImpl.initialize(LuceneIndexImpl.java:165)
        at 
org.apache.geode.cache.lucene.internal.LuceneServiceImpl.afterDataRegionCreated(LuceneServiceImpl.java:214)
        at 
org.apache.geode.cache.lucene.internal.LuceneServiceImpl$1.afterCreate(LuceneServiceImpl.java:194)
        at 
org.apache.geode.internal.cache.GemFireCacheImpl.invokeRegionAfter(GemFireCacheImpl.java:3374)
        at 
org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3353)
        at 
org.apache.geode.internal.cache.GemFireCacheImpl.basicCreateRegion(GemFireCacheImpl.java:3194)
        at 
org.apache.geode.internal.cache.GemFireCacheImpl.createRegion(GemFireCacheImpl.java:3182)
        at parReg.ParRegUtil.createRegionProgrammatically(ParRegUtil.java:1223)
        at parReg.ParRegUtil.createRegion(ParRegUtil.java:1184)
        at parReg.ParRegTest.initializeRegion(ParRegTest.java:604)
        at 
parReg.ParRegTest.HydraTask_HA_initializeAccessor(ParRegTest.java:423)
        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.execute(MethExecutor.java:182)
        at hydra.MethExecutor.execute(MethExecutor.java:150)
        at hydra.TestTask.execute(TestTask.java:192)
        at hydra.RemoteTestModule$1.run(RemoteTestModule.java:212)
{noformat}

If you *don't* define the index on the accessor, you get this error instead

{noformat}
Caused by: 
org.apache.geode.internal.cache.wan.GatewaySenderConfigurationException: Region 
region has [index#_region] AsyncEvent queue IDs. Another cache has same region 
with [] AsyncEvent queue IDs. For region across all members, AsyncEvent queue 
IDs should be same.
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.internal.cache.PartitionedRegion.checkSameSenderIdsAvailableOnAllNodes(PartitionedRegion.java:1145)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.internal.cache.LocalRegion.notifyGatewaySender(LocalRegion.java:6350)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.internal.cache.BucketRegion.notifyGatewaySender(BucketRegion.java:652)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.internal.cache.LocalRegion.basicPutPart2(LocalRegion.java:5910)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.internal.cache.BucketRegion.basicPutPart2(BucketRegion.java:643)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.internal.cache.AbstractRegionMap.basicPut(AbstractRegionMap.java:2800)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.internal.cache.BucketRegion.virtualPut(BucketRegion.java:485)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.internal.cache.PartitionedRegionDataStore.putLocally(PartitionedRegionDataStore.java:1207)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.internal.cache.PartitionedRegionDataStore.putLocally(PartitionedRegionDataStore.java:1190)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.internal.cache.PartitionedRegionDataView.putEntryOnRemote(PartitionedRegionDataView.java:99)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.internal.cache.partitioned.PutMessage.operateOnPartitionedRegion(PutMessage.java:747)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.internal.cache.partitioned.PartitionMessage.process(PartitionMessage.java:342)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:376)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:442)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.distributed.internal.DistributionManager.runUntilShutdown(DistributionManager.java:621)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
org.apache.geode.distributed.internal.DistributionManager$8$1.run(DistributionManager.java:1024)
        at Remote Member '172.16.115.241(45136)<v1>:32770' in 
java.lang.Thread.run(Thread.java:745)
        at 
org.apache.geode.distributed.internal.ReplyException.handleAsUnexpected(ReplyException.java:85)
        at 
org.apache.geode.internal.cache.partitioned.PartitionMessage$PartitionResponse.waitForCacheException(PartitionMessage.java:842)
        at 
org.apache.geode.internal.cache.partitioned.PutMessage$PutResponse.waitForResult(PutMessage.java:1091)
        at 
org.apache.geode.internal.cache.PartitionedRegion.putRemotely(PartitionedRegion.java:3191)
        at 
org.apache.geode.internal.cache.PartitionedRegion.putInBucket(PartitionedRegion.java:2774)
        at 
org.apache.geode.internal.cache.PartitionedRegion.virtualPut(PartitionedRegion.java:1933)
        at 
org.apache.geode.internal.cache.LocalRegionDataView.putEntry(LocalRegionDataView.java:151)
        at 
org.apache.geode.internal.cache.LocalRegion.basicPut(LocalRegion.java:5193)
        at 
org.apache.geode.internal.cache.LocalRegion.validatedPut(LocalRegion.java:1604)
        at 
org.apache.geode.internal.cache.LocalRegion.put(LocalRegion.java:1591)
        at 
org.apache.geode.internal.cache.AbstractRegion.put(AbstractRegion.java:277)
        at 
org.apache.geode.cache.lucene.LuceneQueriesPRBase.lambda$null$0(LuceneQueriesPRBase.java:157)
        at 
java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:110)
        at java.util.stream.IntPipeline$Head.forEach(IntPipeline.java:557)
        at 
org.apache.geode.cache.lucene.LuceneQueriesPRBase.lambda$putEntryInEachBucket$bb17a952$1(LuceneQueriesPRBase.java:157)
        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:245)
        at 
org.apache.geode.test.dunit.standalone.RemoteDUnitVM.executeMethodOnObject(RemoteDUnitVM.java:73)
        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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:324)
        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)
        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)
{noformat}

So basically there is no way to use a PR accessor with a lucene index



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to