title: Solr - OverlappingFileLockException when concurrent commits
body: <p>I'm using solr version 1.4.0 with tomcat 6. I've 2 solr instances running as 2 different web apps with separate data folders. My application requires frequent commits from multiple clients. I've noticed that when more than one client try to commit at the same time, these OverlappingFileLockException start to appear. Can anything be done to rectify this problem? Please find the error log below. Thanks</p>
  
  <hr>
  
  <p>HTTP Status 500 - null</p>
  
  <p>java.nio.channels.OverlappingFileLockException
      at sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1215)
      at sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1117)
      at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:923)
      at java.nio.channels.FileChannel.tryLock(FileChannel.java:978)
      at org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:233)
      at org.apache.lucene.store.Lock.obtain(Lock.java:73)
      at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1550)
      at org.apache.lucene.index.IndexWriter.&lt;init&gt;(IndexWriter.java:1407)
      at org.apache.solr.update.SolrIndexWriter.&lt;init&gt;(SolrIndexWriter.java:190)
      at org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:98)
      at org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:173)
      at org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:220)
      at org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61)
      at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:139)
      at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:69)
      at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:54)
      at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
      at org.apache.solr.core.SolrCore.execute(SolrCore.java:1317)
      at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
      at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
      at java.lang.Thread.run(Thread.java:636)
  <p><b>type</b> Status report</p><p><b>message</b> null</p>
  
  <p>java.nio.channels.OverlappingFileLockException
      at sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1215)
      at sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1117)
      at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:923)
      at java.nio.channels.FileChannel.tryLock(FileChannel.java:978)
      at org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:233)
      at org.apache.lucene.store.Lock.obtain(Lock.java:73)
      at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1550)
      at org.apache.lucene.index.IndexWriter.&lt;init&gt;(IndexWriter.java:1407)
      at org.apache.solr.update.SolrIndexWriter.&lt;init&gt;(SolrIndexWriter.java:190)
      at org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:98)
      at org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:173)
      at org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:220)
      at org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61)
      at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:139)
      at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:69)
      at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:54)
      at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
      at org.apache.solr.core.SolrCore.execute(SolrCore.java:1317)
      at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
      at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
      at java.lang.Thread.run(Thread.java:636)
  </p><p><b>description</b> The server encountered an internal error (null</p>
  
  <p>java.nio.channels.OverlappingFileLockException
      at sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1215)
      at sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1117)
      at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:923)
      at java.nio.channels.FileChannel.tryLock(FileChannel.java:978)
      at org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:233)
      at org.apache.lucene.store.Lock.obtain(Lock.java:73)
      at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1550)
      at org.apache.lucene.index.IndexWriter.&lt;init&gt;(IndexWriter.java:1407)
      at org.apache.solr.update.SolrIndexWriter.&lt;init&gt;(SolrIndexWriter.java:190)
      at org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:98)
      at org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:173)
      at org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:220)
      at org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61)
      at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:139)
      at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:69)
      at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:54)
      at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
      at org.apache.solr.core.SolrCore.execute(SolrCore.java:1317)
      at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)
      at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
      at java.lang.Thread.run(Thread.java:636)
  ) that prevented it from fulfilling this request.</p>