You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Michael McCandless (JIRA)" <ji...@apache.org> on 2008/09/12 12:01:44 UTC

[jira] Created: (LUCENE-1384) addIndexesNoOptimize intermittantly throws incorrect "segment exists in external directory..." exception

addIndexesNoOptimize intermittantly throws incorrect "segment exists in external directory..." exception
--------------------------------------------------------------------------------------------------------

                 Key: LUCENE-1384
                 URL: https://issues.apache.org/jira/browse/LUCENE-1384
             Project: Lucene - Java
          Issue Type: Bug
          Components: Index
    Affects Versions: 2.3.2, 2.3.1, 2.3
            Reporter: Michael McCandless
            Assignee: Michael McCandless
            Priority: Minor
             Fix For: 2.3.3


Spinoff from here:

    http://mail-archives.apache.org/mod_mbox/lucene-java-user/200809.mbox/%3Cba72f77f0809111418l29cf215dnd45bf679832d7d42%40mail.gmail.com%3E

Here's my response on that thread:

The bug only happens when you call addIndexesNoOptimize, and one
simple workaround would be to use SerialMergeScheduler.

I think this is already fixed in trunk (soonish to be 2.4) as a side
effect of https://issues.apache.org/jira/browse/LUCENE-1335.

In 2.3, merges that involve external segments (which are segments
folded in by addIndexesNoOptimize) are not supposed to run in a BG
thread.  This is to prevent addIndexesNoOptimize from returning until
after all external segments have been carried over (merged or copied)
into the index, so that if there is an exception (eg disk full),
addIndexesNoOptimize is able to rollback to the index to the starting
point.

The primary merge() method of CMS indeed does not BG any external
merges, but the bug is that when a BG merge finishes it then selects a
new merge to kick off and that selection is happy to pick an external
segment.

-- 
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


[jira] Resolved: (LUCENE-1384) addIndexesNoOptimize intermittantly throws incorrect "segment exists in external directory..." exception

Posted by "Michael McCandless (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/LUCENE-1384?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael McCandless resolved LUCENE-1384.
----------------------------------------

    Resolution: Fixed

Committed revision 695483.

> addIndexesNoOptimize intermittantly throws incorrect "segment exists in external directory..." exception
> --------------------------------------------------------------------------------------------------------
>
>                 Key: LUCENE-1384
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1384
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>    Affects Versions: 2.3, 2.3.1, 2.3.2
>            Reporter: Michael McCandless
>            Assignee: Michael McCandless
>            Priority: Minor
>             Fix For: 2.3.3
>
>         Attachments: LUCENE-1384.patch
>
>
> Spinoff from here:
>     http://mail-archives.apache.org/mod_mbox/lucene-java-user/200809.mbox/%3Cba72f77f0809111418l29cf215dnd45bf679832d7d42%40mail.gmail.com%3E
> Here's my response on that thread:
> The bug only happens when you call addIndexesNoOptimize, and one
> simple workaround would be to use SerialMergeScheduler.
> I think this is already fixed in trunk (soonish to be 2.4) as a side
> effect of https://issues.apache.org/jira/browse/LUCENE-1335.
> In 2.3, merges that involve external segments (which are segments
> folded in by addIndexesNoOptimize) are not supposed to run in a BG
> thread.  This is to prevent addIndexesNoOptimize from returning until
> after all external segments have been carried over (merged or copied)
> into the index, so that if there is an exception (eg disk full),
> addIndexesNoOptimize is able to rollback to the index to the starting
> point.
> The primary merge() method of CMS indeed does not BG any external
> merges, but the bug is that when a BG merge finishes it then selects a
> new merge to kick off and that selection is happy to pick an external
> segment.

-- 
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


[jira] Updated: (LUCENE-1384) addIndexesNoOptimize intermittantly throws incorrect "segment exists in external directory..." exception

Posted by "Michael McCandless (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/LUCENE-1384?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael McCandless updated LUCENE-1384:
---------------------------------------

    Attachment: LUCENE-1384.patch

Attached patch.  I plan to commit in a day or to to 2.3.x branch.

> addIndexesNoOptimize intermittantly throws incorrect "segment exists in external directory..." exception
> --------------------------------------------------------------------------------------------------------
>
>                 Key: LUCENE-1384
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1384
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>    Affects Versions: 2.3, 2.3.1, 2.3.2
>            Reporter: Michael McCandless
>            Assignee: Michael McCandless
>            Priority: Minor
>             Fix For: 2.3.3
>
>         Attachments: LUCENE-1384.patch
>
>
> Spinoff from here:
>     http://mail-archives.apache.org/mod_mbox/lucene-java-user/200809.mbox/%3Cba72f77f0809111418l29cf215dnd45bf679832d7d42%40mail.gmail.com%3E
> Here's my response on that thread:
> The bug only happens when you call addIndexesNoOptimize, and one
> simple workaround would be to use SerialMergeScheduler.
> I think this is already fixed in trunk (soonish to be 2.4) as a side
> effect of https://issues.apache.org/jira/browse/LUCENE-1335.
> In 2.3, merges that involve external segments (which are segments
> folded in by addIndexesNoOptimize) are not supposed to run in a BG
> thread.  This is to prevent addIndexesNoOptimize from returning until
> after all external segments have been carried over (merged or copied)
> into the index, so that if there is an exception (eg disk full),
> addIndexesNoOptimize is able to rollback to the index to the starting
> point.
> The primary merge() method of CMS indeed does not BG any external
> merges, but the bug is that when a BG merge finishes it then selects a
> new merge to kick off and that selection is happy to pick an external
> segment.

-- 
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