lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LUCENE-7582) "Cannot commit index writer" in some cases on windows
Date Tue, 06 Dec 2016 14:27:59 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-7582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15725636#comment-15725636
] 

Uwe Schindler commented on LUCENE-7582:
---------------------------------------

I checked the above stack trace and agree with Mike. The issue you see is completely unrelated
to NIOFSDir. It may also happen with other directory implementations. It looks more to be
"the" general windows issue with open files. Virus checkers is my first guess. Lucene needs
full control on the file it opened for full commit safety. Any other process (like virus scanners)
that prevents files from being deleted/opened may cause this. The problem is that lucene creates
and deletes in short times so it is very likely that lucene creates a file, the virus checker
is scanning it, but at same time lucene deletes it or renames it for committing.

In general on server side installations, the recommendation to users is to exclude all directories
where Lucene writes its indexes (e.g. Solr installation dir) from virus checking. Of course
this is an issue for desktop applications, but thats's not a common Lucene use case.

> "Cannot commit index writer" in some cases on windows
> -----------------------------------------------------
>
>                 Key: LUCENE-7582
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7582
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/store
>    Affects Versions: 5.3.1
>         Environment: Windows 10, 32 bits JVM
>            Reporter: Kevin Senechal
>
> Hi!
> I've an error using lucene on windows. I already post a question on modeshape forum (https://developer.jboss.org/thread/273070)
and it looks that NIOFSDirectory is not working well on windows as described in the java documentation
of this class.
> {quote}NOTE: NIOFSDirectory is not recommended on Windows because of a bug in how FileChannel.read
is implemented in Sun's JRE. Inside of the implementation the position is apparently synchronized.
See here for details.{quote}
> After reading the linked java issue (http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6265734),
it seems that there is a workaround to solve it, use an AsynchronousFileChannel.
> Is it a choice that has been made to not use AsynchronousFileChannel or will it be a
good fix?
> You'll find the complete stacktrace below:
> {code:java}
> Caused by: org.modeshape.jcr.index.lucene.LuceneIndexException: Cannot commit index writer
 
>   at org.modeshape.jcr.index.lucene.LuceneIndex.commit(LuceneIndex.java:155) ~[dsdk-launcher.jar:na]
 
>   at org.modeshape.jcr.spi.index.provider.IndexChangeAdapter.completeWorkspaceChanges(IndexChangeAdapter.java:104)
~[dsdk-launcher.jar:na]  
>   at org.modeshape.jcr.cache.change.ChangeSetAdapter.notify(ChangeSetAdapter.java:157)
~[dsdk-launcher.jar:na]  
>   at org.modeshape.jcr.spi.index.provider.IndexProvider$AtomicIndex.notify(IndexProvider.java:1493)
~[dsdk-launcher.jar:na]  
>   at org.modeshape.jcr.bus.RepositoryChangeBus.notify(RepositoryChangeBus.java:190) ~[dsdk-launcher.jar:na]
 
>   at org.modeshape.jcr.cache.document.WorkspaceCache.changed(WorkspaceCache.java:333)
~[dsdk-launcher.jar:na]  
>   at org.modeshape.jcr.txn.SynchronizedTransactions.updateCache(SynchronizedTransactions.java:223)
~[dsdk-launcher.jar:na]  
>   at org.modeshape.jcr.cache.document.WritableSessionCache.save(WritableSessionCache.java:751)
~[dsdk-launcher.jar:na]  
>   at org.modeshape.jcr.JcrSession.save(JcrSession.java:1171) ~[dsdk-launcher.jar:na]
 
>   ... 19 common frames omitted  
> Caused by: java.nio.file.FileSystemException: C:\Users\Christopher\Infiltrea3CLOUDTEST8\christopher@dooapp.com\indexes\default\nodesByPath\_dc_Lucene50_0.doc:
The process cannot access the file because it is being used by another process.  
>   at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86) ~[na:1.8.0_92]
 
>   at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) ~[na:1.8.0_92]
 
>   at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) ~[na:1.8.0_92]
 
>   at sun.nio.fs.WindowsFileSystemProvider.newFileChannel(WindowsFileSystemProvider.java:115)
~[na:1.8.0_92]  
>   at java.nio.channels.FileChannel.open(FileChannel.java:287) ~[na:1.8.0_92]  
>   at java.nio.channels.FileChannel.open(FileChannel.java:335) ~[na:1.8.0_92]  
>   at org.apache.lucene.util.IOUtils.fsync(IOUtils.java:393) ~[dsdk-launcher.jar:na] 

>   at org.apache.lucene.store.FSDirectory.fsync(FSDirectory.java:281) ~[dsdk-launcher.jar:na]
 
>   at org.apache.lucene.store.FSDirectory.sync(FSDirectory.java:226) ~[dsdk-launcher.jar:na]
 
>   at org.apache.lucene.store.LockValidatingDirectoryWrapper.sync(LockValidatingDirectoryWrapper.java:62)
~[dsdk-launcher.jar:na]  
>   at org.apache.lucene.index.IndexWriter.startCommit(IndexWriter.java:4456) ~[dsdk-launcher.jar:na]
 
>   at org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:2874)
~[dsdk-launcher.jar:na]  
>   at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:2977) ~[dsdk-launcher.jar:na]
 
>   at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:2944) ~[dsdk-launcher.jar:na]
 
>   at org.modeshape.jcr.index.lucene.LuceneIndex.commit(LuceneIndex.java:152) ~[dsdk-launcher.jar:na]

> {code}
> Thank you in advance for your help



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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


Mime
View raw message