Vitaly Funstein created LUCENE-5931: ---------------------------------------
Summary: DirectoryReader.openIfChanged(oldReader, commit) incorrectly assumes given commit points has deletes/field updates Key: LUCENE-5931 URL: https://issues.apache.org/jira/browse/LUCENE-5931 Project: Lucene - Core Issue Type: Bug Components: core/index Affects Versions: 4.6.1 Reporter: Vitaly Funstein Priority: Critical {{StandardDirectoryReader}} assumes that the segments from commit point have deletes, when they may not, yet the original SegmentReader for the segment that we are trying to reuse does. This is evident when running attached JUnit test case with asserts enabled (default): {noformat} java.lang.AssertionError at org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:188) at org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:326) at org.apache.lucene.index.StandardDirectoryReader$2.doBody(StandardDirectoryReader.java:320) at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:702) at org.apache.lucene.index.StandardDirectoryReader.doOpenFromCommit(StandardDirectoryReader.java:315) at org.apache.lucene.index.StandardDirectoryReader.doOpenNoWriter(StandardDirectoryReader.java:311) at org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:262) at org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:183) {noformat} or, if asserts are disabled then it falls through into NPE: {noformat} java.lang.NullPointerException at java.io.File.<init>(File.java:305) at org.apache.lucene.store.NIOFSDirectory.openInput(NIOFSDirectory.java:80) at org.apache.lucene.codecs.lucene40.BitVector.<init>(BitVector.java:327) at org.apache.lucene.codecs.lucene40.Lucene40LiveDocsFormat.readLiveDocs(Lucene40LiveDocsFormat.java:90) at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:131) at org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:194) at org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:326) at org.apache.lucene.index.StandardDirectoryReader$2.doBody(StandardDirectoryReader.java:320) at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:702) at org.apache.lucene.index.StandardDirectoryReader.doOpenFromCommit(StandardDirectoryReader.java:315) at org.apache.lucene.index.StandardDirectoryReader.doOpenNoWriter(StandardDirectoryReader.java:311) at org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:262) at org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:183) {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org