The Win7 crashes aren't from disk drivers - they come from, in this case, a Broadcom wireless adapter driver. The corruption comes as a result of the 'hard stop' of Windows.
I would imagine this same problem could/would occur on any OS if the plug was pulled from the machine. Thanks, Peter On Thu, Dec 2, 2010 at 4:07 AM, Lance Norskog <goks...@gmail.com> wrote: > Is there any way that Windows 7 and disk drivers are not honoring the > fsync() calls? That would cause files and/or blocks to get saved out > of order. > > On Tue, Nov 30, 2010 at 3:24 PM, Peter Sturge <peter.stu...@gmail.com> wrote: >> After a recent Windows 7 crash (:-\), upon restart, Solr starts giving >> LockObtainFailedException errors: (excerpt) >> >> 30-Nov-2010 23:10:51 org.apache.solr.common.SolrException log >> SEVERE: org.apache.lucene.store.LockObtainFailedException: Lock >> obtain timed out: >> nativefsl...@solr\.\.\data0\index\lucene-ad25f73e3c87e6f192c4421756925f47-write.lock >> >> >> When I run CheckIndex, I get: (excerpt) >> >> 30 of 30: name=_2fi docCount=857 >> compound=false >> hasProx=true >> numFiles=8 >> size (MB)=0.769 >> diagnostics = {os.version=6.1, os=Windows 7, lucene.version=3.1-dev >> ${svnver >> sion} - 2010-09-11 11:09:06, source=flush, os.arch=amd64, >> java.version=1.6.0_18, >> java.vendor=Sun Microsystems Inc.} >> no deletions >> test: open reader.........FAILED >> WARNING: fixIndex() would remove reference to this segment; full >> exception: >> org.apache.lucene.index.CorruptIndexException: did not read all bytes from >> file >> "_2fi.fnm": read 1 vs size 512 >> at org.apache.lucene.index.FieldInfos.read(FieldInfos.java:367) >> at org.apache.lucene.index.FieldInfos.<init>(FieldInfos.java:71) >> at >> org.apache.lucene.index.SegmentReader$CoreReaders.<init>(SegmentReade >> r.java:119) >> at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:583) >> at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:561) >> at org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:467) >> at org.apache.lucene.index.CheckIndex.main(CheckIndex.java:878) >> >> WARNING: 1 broken segments (containing 857 documents) detected >> >> >> This seems to happen every time Windows 7 crashes, and it would seem >> extraordinary bad luck for this tiny test index to be in the middle of >> a commit every time. >> (it is set to commit every 40secs, but for such a small index it only >> takes millis to complete) >> >> Does this seem right? I don't remember seeing so many corruptions in >> the index - maybe it is the world of Win7 dodgy drivers, but it would >> be worth investigating if there's something amiss in Solr/Lucene when >> things go down unexpectedly... >> >> Thanks, >> Peter >> >> >> On Tue, Nov 30, 2010 at 9:19 AM, Peter Sturge <peter.stu...@gmail.com> wrote: >>> 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 >>>> >>> >> > > > > -- > Lance Norskog > goks...@gmail.com >