You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2017/08/23 06:14:12 UTC

svn commit: r1805852 - in /jackrabbit/oak/trunk/oak-lucene/src: main/java/org/apache/jackrabbit/oak/plugins/index/lucene/ test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/

Author: chetanm
Date: Wed Aug 23 06:14:12 2017
New Revision: 1805852

URL: http://svn.apache.org/viewvc?rev=1805852&view=rev
Log:
OAK-6572 - IndexReaderClosed exception seen after some run

Bind the identity of search id to search holder id as searcher
would get changed for same IndexNode

Modified:
    jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNodeManager.java
    jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
    jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java

Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNodeManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNodeManager.java?rev=1805852&r1=1805851&r2=1805852&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNodeManager.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexNodeManager.java Wed Aug 23 06:14:12 2017
@@ -56,7 +56,7 @@ public class IndexNodeManager {
      */
     static final String ASYNC = ":async";
 
-    private static final AtomicInteger INDEX_NODE_COUNTER = new AtomicInteger();
+    private static final AtomicInteger SEARCHER_ID_COUNTER = new AtomicInteger();
 
     private static final PerfLogger PERF_LOGGER =
             new PerfLogger(LoggerFactory.getLogger(IndexNodeManager.class.getName() + ".perf"));
@@ -102,8 +102,6 @@ public class IndexNodeManager {
 
     private boolean closed = false;
 
-    private final int indexNodeId = INDEX_NODE_COUNTER.incrementAndGet();
-
     IndexNodeManager(String name, IndexDefinition definition, List<LuceneIndexReader> readers, @Nullable NRTIndex nrtIndex)
             throws IOException {
         checkArgument(!readers.isEmpty() || nrtIndex != null);
@@ -157,10 +155,6 @@ public class IndexNodeManager {
         lock.readLock().unlock();
     }
 
-    private int getIndexNodeId() {
-        return indexNodeId;
-    }
-
     void close() throws IOException {
         lock.writeLock().lock();
         try {
@@ -267,6 +261,7 @@ public class IndexNodeManager {
     private static class SearcherHolder {
         final IndexSearcher searcher;
         final List<LuceneIndexReader> nrtReaders;
+        final int searcherId = SEARCHER_ID_COUNTER.incrementAndGet();
 
         public SearcherHolder(IndexSearcher searcher, List<LuceneIndexReader> nrtReaders) {
             this.searcher = searcher;
@@ -325,7 +320,7 @@ public class IndexNodeManager {
 
         @Override
         public int getIndexNodeId() {
-            return IndexNodeManager.this.getIndexNodeId();
+            return holder.searcherId;
         }
 
         @Override

Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java?rev=1805852&r1=1805851&r2=1805852&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java Wed Aug 23 06:14:12 2017
@@ -539,7 +539,6 @@ public class LucenePropertyIndex impleme
                         LOG.debug("Change in index version detected. Query would be performed without offset");
                     }
 
-                    //TODO Add testcase for this scenario
                     indexSearcher = indexNode.getSearcher();
                     indexNodeId = indexNode.getIndexNodeId();
                     lastDoc = null;

Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java?rev=1805852&r1=1805851&r2=1805852&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java Wed Aug 23 06:14:12 2017
@@ -390,7 +390,6 @@ public class HybridIndexTest extends Abs
         assertThat(fileCount4, lessThanOrEqualTo(fileCount3));
     }
 
-    @Ignore("OAK-6572")
     @Test
     public void paging() throws Exception{
         String idxName = "hybridtest";