lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Simon Willnauer (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (LUCENE-3551) Yet another race in IW#nrtIsCurrent
Date Wed, 02 Nov 2011 11:43:32 GMT

     [ https://issues.apache.org/jira/browse/LUCENE-3551?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Simon Willnauer updated LUCENE-3551:
------------------------------------

    Attachment: LUCENE-3551.patch

here is a new patch fixing this issue. With this patch I could not reproduce any failure from
SOLR-2861 which usually failed fairly quickly.
                
> Yet another race in IW#nrtIsCurrent
> -----------------------------------
>
>                 Key: LUCENE-3551
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3551
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: core/index
>    Affects Versions: 4.0
>            Reporter: Simon Willnauer
>             Fix For: 4.0
>
>         Attachments: LUCENE-3551.patch, LUCENE-3551.patch, LUCENE-3551.patch
>
>
> In IW#nrtIsCurrent looks like this:
> {code}
>   synchronized boolean nrtIsCurrent(SegmentInfos infos) {
>     ensureOpen();
>     return infos.version == segmentInfos.version && !docWriter.anyChanges() &&
!bufferedDeletesStream.any();
>   }
> {code}
> * the version changes once we checkpoint the IW
> * docWriter has changes if there are any docs in ram or any deletes in the delQueue
> * bufferedDeletes contain all frozen del packages from the delQueue
> yet, what happens is 1. we decrement the numDocsInRam in DWPT#doAfterFlush (which is
executed during DWPT#flush) but before we checkpoint. 2. if we freeze deletes (empty the delQueue)
we put them in the flushQueue to maintain the order.  This means they are not yet in the bufferedDeleteStream.
> Bottom line, there is a window where we could see IW#nrtIsCurrent returning true if we
check within this particular window. Phew, I am not 100% sure if that is the reason for our
latest failure in SOLR-2861 but from what the logs look like this could be what happens. If
we randomly hit low values for maxBufferedDocs & maxBufferedDeleteTerms this is absolutely
possible.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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


Mime
View raw message