lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Erik van Zijst (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (LUCENE-1474) Incorrect SegmentInfo.delCount when IndexReader.flush() is used
Date Wed, 20 May 2009 03:40:45 GMT

    [ 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:39 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 _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.
I have attached a full stacktrace.

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


Mime
View raw message