The index itself isn't corrupt - just one of the segment files. This
means you can read the index (less the offending segment(s)), but once
this happens it's no longer possible to
access the documents that were in that segment (they're gone forever),
nor write/commit to the index (depending on the env/request, you get
'Error reading from index file..' and/or WriteLockError)
(note that for my use case, documents are dynamically created so can't
be re-indexed).

Restarting Solr fixes the write lock errors (an indirect environmental
symptom of the problem), and running CheckIndex -fix is the only way
I've found to repair the index so it can be written to (rewrites the
corrupted segment(s)).

I guess I was wondering if there's a mechanism that would support
something akin to a transactional rollback for segments.

Thanks,
Peter



On Mon, Nov 29, 2010 at 5:33 PM, Yonik Seeley
<yo...@lucidimagination.com> wrote:
> On Mon, Nov 29, 2010 at 10:46 AM, Peter Sturge <peter.stu...@gmail.com> wrote:
>> If a Solr index is running at the time of a system halt, this can
>> often corrupt a segments file, requiring the index to be -fix'ed by
>> rewriting the offending file.
>
> Really?  That shouldn't be possible (if you mean the index is truly
> corrupt - i.e. you can't open it).
>
> -Yonik
> http://www.lucidimagination.com
>

Reply via email to