lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Modrall" <MModr...@glgroup.com>
Subject RE: running a lucene indexing app as a windows service on xp, crashing
Date Fri, 04 Aug 2006 21:45:08 GMT
Hi Michael...

Here's the traceback:
[Indexer.java 652] buildFullIndex: Error building full index
java.io.IOException: Cannot rename
D:\indexbuild1\contact_index\deleteable.new to
D:\indexbuild1\contact_index\deletable at
 org.apache.lucene.store.FSDirectory.renameFile(FSDirectory.java:294) at
org.apache.lucene.index.IndexWriter.writeDeleteableFiles(IndexWriter.jav
a:827) at
 
org.apache.lucene.index.IndexWriter.deleteSegments(IndexWriter.java:771)
at
 org.apache.lucene.index.IndexWriter.mergeSegments(IndexWriter.java:732)
at
 org.apache.lucene.index.IndexWriter.mergeSegments(IndexWriter.java:686)
at
org.apache.lucene.index.IndexWriter.maybeMergeSegments(IndexWriter.java:
674)at
 org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:479)
at
 org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:462)
at
 com.glgroup.glissando.Indexer.indexAllDocuments(Indexer.java:546) at
 com.glgroup.glissando.Indexer.buildFullIndex(Indexer.java:646) at
 com.glgroup.glissando.Indexer.buildIndex(Indexer.java:728) at
 com.glgroup.glissando.Indexer.buildIndices(Indexer.java:845) at
 
com.glgroup.glissando.IndexingService.stepService(IndexingService.java:3
9) at
 com.glgroup.util.threading.ServiceThread.run(ServiceThread.java:60)
Caused by: java.io.FileNotFoundException:
D:\indexbuild1\contact_index\deletable (Access is denied) at
 java.io.FileOutputStream.open(Native Method) at
 java.io.FileOutputStream.<init>(Unknown Source) at
 java.io.FileOutputStream.<init>(Unknown Source) at
 org.apache.lucene.store.FSDirectory.renameFile(FSDirectory.java:278)
... 13 more

	So you can see, yes it's exactly in that spot.  Given the
circumstances we've seen, it seems like File.renameTo() is working most
of the  time but whatever causes it to fail at this specific point in
time also causes the 
New FileOutputStream (nu);
 to blow up 2 lines later.

	As I said, the trigger seems to be Windows Explorer doing a
refresh at the same moment that Lucene is trying to do one of these
swaps.  I don't know if this is a weakness in the jvm implementation of
the file classes or what, but I've found complaints/bugs about the java
file interactions on windows coming up to 2004.

-Mark




 
This e-mail message, and any attachments, is intended only for the use of the individual or
entity identified in the alias address of this message and may contain information that is
confidential, privileged and subject to legal restrictions and penalties regarding its unauthorized
disclosure and use. Any unauthorized review, copying, disclosure, use or distribution is strictly
prohibited. If you have received this e-mail message in error, please notify the sender immediately
by reply e-mail and delete this message, and any attachments, from your system. Thank you.


-----Original Message-----

From: Michael McCandless [mailto:lucene@mikemccandless.com] 
Sent: Friday, August 04, 2006 5:28 PM
To: java-user@lucene.apache.org
Subject: Re: running a lucene indexing app as a windows service on xp,
crashing


> The Lucene code is crashing under circumstances that seem pretty lame.
> At periodic intervals, lucene tries to File.renameTo(newfile).
> Sometimes this fails, so Lucene implemented some fall-back code to
> manually copy the contents of the file from old to new.  Our problem
is
> that sometimes *this* fails too, then the whole thing blows up.

I agree Lucene should not be affected by things like having Windows 
Explorer windows up!

Can you post the traceback you're seeing?  In particular, what's failing

about the fallback approach?

Is it in the FSDirectory's renameFile method?  There is this comment in 
there:

     // Rename the old file to the new one. Unfortunately, the
renameTo()
     // method does not work reliably under some JVMs.  Therefore, if
the
     // rename fails, we manually rename by copying the old file to the 
new one

and correspondingly this comment in the original commit for this (back 
on March 1 2003):

- Added a manual renaming of files in case the java.io.File's
renameTo(File)
   call fails.  It has been reported that this happens on Windows JVMs.
Contributed by: Matt Tucker

Mike

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

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


Mime
View raw message