Description
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
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)
If you don't define the index on the accessor, you get this error instead
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)
So basically there is no way to use a PR accessor with a lucene index