You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Erik van Zijst (JIRA)" <ji...@apache.org> on 2009/05/20 05:40:45 UTC

[jira] Issue Comment Edited: (LUCENE-1474) Incorrect SegmentInfo.delCount when IndexReader.flush() is used

    [ https://issues.apache.org/jira/browse/LUCENE-1474?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12710988#action_12710988 ] 

Erik van Zijst edited comment on LUCENE-1474 at 5/19/09 8:40 PM:
-----------------------------------------------------------------

For some time now we've been getting similar assertion errors on our development machines when running with assertions enabled (disabling them kills the assertion error and doesn't _appear_ to have any negative impact though).

We're running with lucene 2.4.1 and the unit test attached to this issue succeeds as expected, but our own code still appears to trigger a similar problem:

     [java] ERROR - Problem processing revisions from repo https://studio.atlassian.com/svn/FE due to class java.lang.AssertionError - delete count mismatch: info=128 vs BitVector=126
     [java] java.lang.AssertionError: delete count mismatch: info=128 vs BitVector=126
     [java] 	at org.apache.lucene.index.SegmentReader.loadDeletedDocs(SegmentReader.java:405)
     [java] 	at org.apache.lucene.index.SegmentReader.initialize(SegmentReader.java:368)
     [java] 	at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:306)
     [java] 	at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:228)
     [java] 	at org.apache.lucene.index.MultiSegmentReader.<init>(MultiSegmentReader.java:55)
     [java] 	at org.apache.lucene.index.DirectoryIndexReader$1.doBody(DirectoryIndexReader.java:104)
     [java] 	at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:653)
     [java] 	at org.apache.lucene.index.DirectoryIndexReader.open(DirectoryIndexReader.java:115)
     [java] 	at org.apache.lucene.index.IndexReader.open(IndexReader.java:316)
     [java] 	at org.apache.lucene.index.IndexReader.open(IndexReader.java:216)
     [java] 	at com.cenqua.fisheye.lucene.LuceneConnection.getReader(LuceneConnection.java:309)
     [java] 	at com.cenqua.fisheye.lucene.LuceneConnection.withReaderAndDeletes(LuceneConnection.java:158)
     [java] 	at com.cenqua.fisheye.rep.RepositoryIndexer.deleteDocuments(RepositoryIndexer.java:146)
     [java] 	at com.cenqua.fisheye.rep.RepositoryIndexer.deleteContent(RepositoryIndexer.java:138)
     [java] 	at com.cenqua.fisheye.rep.RepositoryScanner.deleteContent(RepositoryScanner.java:594)
     [java] 	at com.cenqua.fisheye.rep.RepositoryScanner.indexContent(RepositoryScanner.java:578)
     [java] 	at com.cenqua.fisheye.rep.RepositoryScanner.processContent(RepositoryScanner.java:432)
     [java] 	at com.cenqua.fisheye.rep.RepositoryScanner.slurpRepository(RepositoryScanner.java:263)
     [java] 	at com.cenqua.fisheye.rep.RepositoryScanner.slurp(RepositoryScanner.java:175)
     [java] 	at com.cenqua.fisheye.rep.RepositoryScanner.ping(RepositoryScanner.java:108)
     [java] 	at com.cenqua.fisheye.svn.SvnRepositoryEngine.doSlurp(SvnRepositoryEngine.java:68)
     [java] 	at com.cenqua.fisheye.rep.ping.OneOffPingRequest.doRequest(OneOffPingRequest.java:30)
     [java] 	at com.cenqua.fisheye.rep.ping.PingRequest.process(PingRequest.java:90)
     [java] 	at com.cenqua.fisheye.rep.RepositoryHandle.processPingRequests(RepositoryHandle.java:119)
     [java] 	at com.cenqua.fisheye.rep.RepositoryHandle.queuePingRequest(RepositoryHandle.java:109)
     [java] 	at com.cenqua.fisheye.rep.ping.PingRequest.run(PingRequest.java:57)
     [java] 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
     [java] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
     [java] 	at java.lang.Thread.run(Thread.java:613)


cheers,
Erik
Atlassian

      was (Author: erik.van.zijst):
    For some time now we've been getting similar assertion errors on our development machines when running with assertions enabled (disabling them kills the assertion error and doesn _appear_ to have any negative impact though).

We're running with lucene 2.4.1 and the unit test attached to this issue succeeds as expected, but our own code still appears to trigger a similar problem:

     [java] ERROR - Problem processing revisions from repo https://studio.atlassian.com/svn/FE due to class java.lang.AssertionError - delete count mismatch: info=128 vs BitVector=126
     [java] java.lang.AssertionError: delete count mismatch: info=128 vs BitVector=126
     [java] 	at org.apache.lucene.index.SegmentReader.loadDeletedDocs(SegmentReader.java:405)
     [java] 	at org.apache.lucene.index.SegmentReader.initialize(SegmentReader.java:368)
     [java] 	at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:306)
     [java] 	at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:228)
     [java] 	at org.apache.lucene.index.MultiSegmentReader.<init>(MultiSegmentReader.java:55)
     [java] 	at org.apache.lucene.index.DirectoryIndexReader$1.doBody(DirectoryIndexReader.java:104)
     [java] 	at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:653)
     [java] 	at org.apache.lucene.index.DirectoryIndexReader.open(DirectoryIndexReader.java:115)
     [java] 	at org.apache.lucene.index.IndexReader.open(IndexReader.java:316)
     [java] 	at org.apache.lucene.index.IndexReader.open(IndexReader.java:216)
     [java] 	at com.cenqua.fisheye.lucene.LuceneConnection.getReader(LuceneConnection.java:309)
     [java] 	at com.cenqua.fisheye.lucene.LuceneConnection.withReaderAndDeletes(LuceneConnection.java:158)
     [java] 	at com.cenqua.fisheye.rep.RepositoryIndexer.deleteDocuments(RepositoryIndexer.java:146)
     [java] 	at com.cenqua.fisheye.rep.RepositoryIndexer.deleteContent(RepositoryIndexer.java:138)
     [java] 	at com.cenqua.fisheye.rep.RepositoryScanner.deleteContent(RepositoryScanner.java:594)
     [java] 	at com.cenqua.fisheye.rep.RepositoryScanner.indexContent(RepositoryScanner.java:578)
     [java] 	at com.cenqua.fisheye.rep.RepositoryScanner.processContent(RepositoryScanner.java:432)
     [java] 	at com.cenqua.fisheye.rep.RepositoryScanner.slurpRepository(RepositoryScanner.java:263)
     [java] 	at com.cenqua.fisheye.rep.RepositoryScanner.slurp(RepositoryScanner.java:175)
     [java] 	at com.cenqua.fisheye.rep.RepositoryScanner.ping(RepositoryScanner.java:108)
     [java] 	at com.cenqua.fisheye.svn.SvnRepositoryEngine.doSlurp(SvnRepositoryEngine.java:68)
     [java] 	at com.cenqua.fisheye.rep.ping.OneOffPingRequest.doRequest(OneOffPingRequest.java:30)
     [java] 	at com.cenqua.fisheye.rep.ping.PingRequest.process(PingRequest.java:90)
     [java] 	at com.cenqua.fisheye.rep.RepositoryHandle.processPingRequests(RepositoryHandle.java:119)
     [java] 	at com.cenqua.fisheye.rep.RepositoryHandle.queuePingRequest(RepositoryHandle.java:109)
     [java] 	at com.cenqua.fisheye.rep.ping.PingRequest.run(PingRequest.java:57)
     [java] 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
     [java] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
     [java] 	at java.lang.Thread.run(Thread.java:613)


cheers,
Erik
Atlassian
  
> Incorrect SegmentInfo.delCount when IndexReader.flush() is used
> ---------------------------------------------------------------
>
>                 Key: LUCENE-1474
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1474
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>    Affects Versions: 2.4
>            Reporter: Marcel Reutegger
>            Assignee: Michael McCandless
>             Fix For: 2.4.1, 2.9
>
>         Attachments: IndexReaderTest.java
>
>
> When deleted documents are flushed using IndexReader.flush() the delCount in SegmentInfo is updated based on the current value and SegmentReader.pendingDeleteCount (introduced by LUCENE-1267). It seems that pendingDeleteCount is not reset after the commit, which means after a second flush() or close() of an index reader the delCount in SegmentInfo is incorrect. A subsequent IndexReader.open() call will fail with an error when assertions are enabled. E.g.:
> java.lang.AssertionError: delete count mismatch: info=3 vs BitVector=2
> 	at org.apache.lucene.index.SegmentReader.loadDeletedDocs(SegmentReader.java:405)
> [...]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org