lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael McCandless (JIRA)" <>
Subject [jira] Updated: (LUCENE-820) SegmentReader.setNorm can fail to remove separate norms file, on Windows
Date Sat, 03 Mar 2007 14:44:50 GMT


Michael McCandless updated LUCENE-820:

    Attachment: LUCENE-820.patch

I've attached a patch that fixes this.

The fix is to close the IndexInput after we've cached the norms in the
in-memory byte array.  Once we've cached the norms, we never use that
IndexInput again (as far as I can tell?).  This is also nice because
it frees up file handles once norms are cached.


  * Fixed TestMultiSearcher: it was closing a searcher and then
    continuing to use it.

  * Added unit test case showing this bug before the patch.

  * Improved MockRAMDirectory to "act like Windows" by refusing to
    delete or overwrite an open file.  I removed "final" from 2
    methods (deleteFile, openInput) of RAMDirectory for this.

  * Changed SegmentReader.getNorms to close the Norms after caching.

> SegmentReader.setNorm can fail to remove separate norms file, on Windows
> ------------------------------------------------------------------------
>                 Key: LUCENE-820
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>    Affects Versions: 2.1
>            Reporter: Michael McCandless
>         Assigned To: Michael McCandless
>            Priority: Minor
>             Fix For: 2.2
>         Attachments: LUCENE-820.patch
> While working through LUCENE-710 I hit this bug: on Windows
> only, when SegmentReader.setNorm is called, but separate norms
> (_X_N.sY) had already been previously saved, then, on closing the
> reader, we will write the next gen separate norm file correctly
> (_X_N+1.sY) but fail to delete the current one.
> It's quite minor because the next writer to touch the index will
> remove the stale file.
> This is because the Norm class still holds the IndexInput open when
> the reader commits.

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:
For additional commands, e-mail:

View raw message