Is it best way to implement my own Locking mechanism here?
Thanks
/Renz

2009/7/10 Renz Daluz <renz052...@gmail.com>

> Hi all,
> I have 2 workers running (app that's builds the index) and both are
> pointing to the same "Solr" (1.3.0) master instance when updating/committing
> documents. I'm using SolrJ to save the documents.
>
> Then I have 4 slaves solr instance that gets index from master via rsync.
>
>
> Now. from time to time, I'm getting this exception in my workers logs:
>
> org.apache.solr.common.SolrException: Internal Server Error
>
> Internal Server Error
>
> request: 
> http://master01:18243/solr/update?wt=javabin&version=2.2<http://fwprodsearchim01.ni.news.com.au:18243/solr/update?wt=javabin&version=2.2>
>
>         at
> org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:343)
>
>         at
> org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:183)
>
>         at
> org.apache.solr.client.solrj.request.UpdateRequest.process(UpdateRequest.java:217)
>
>         at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:63)
>
>         at
> au.com.ndm.search.solr.connector.SolrInterfaceImpl.saveAsset(SolrInterfaceImpl.java:43)
>
>         at
> au.com.ndm.search.solr.connector.SolrInterfaceBufferedImpl.forceCommit(SolrInterfaceBufferedImpl.java:87)
>
>         at
> au.com.ndm.search.solr.connector.SolrInterfaceBufferedImpl.run(SolrInterfaceBufferedImpl.java:137)
>
>         at java.util.TimerThread.mainLoop(Timer.java:512)
>
>         at java.util.TimerThread.run(Timer.java:462)
>
> 2009-07-10 12:02:18,460 INFO Solr Buffered Interface Timer
> au.com.ndm.search.solr.connector.SolrInterfaceBufferedImpl
>
> Committing Solr Buffer (Added: 1, Deleted: 0) Time since last commit: 2.033
> secs
>
> Totals: 0.7507749069575383 pages/sec (71 docs, 93 secs)
>
>
>
> And on Master solr instance I'm getting this error:
>
>
>
> Jul 10, 2009 4:01:55 AM org.apache.solr.common.SolrException log
> SEVERE: org.apache.lucene.store.LockObtainFailedException: Lock obtain
> timed out: SimpleFSLock@
> /projects/msim/indexdata/data/index/lucene-0614ba206dd0e0871ca4eecf8f2e853a-write.lock
>  at org.apache.lucene.store.Lock.obtain(Lock.java:85)
> at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1140)
>  at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:938)
> at org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:116)
>  at
> org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:122)
> at
> org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:167)
>  at
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:221)
> at
> org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:59)
>  at
> org.apache.solr.handler.XmlUpdateRequestHandler.processUpdate(XmlUpdateRequestHandler.java:196)
> at
> org.apache.solr.handler.XmlUpdateRequestHandler.handleRequestBody(XmlUpdateRequestHandler.java:123)
>  at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1204)
>  at
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:303)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:232)
>  at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>  at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
>  at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>  at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:542)
>  at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
>  at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>  at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
>  at java.lang.Thread.run(Thread.java:619)
>
>
>
> I have this in my solrconfig:
>
> <indexDefaults>
> <useCompoundFile>false</useCompoundFile>
> <mergeFactor>10</mergeFactor>
>  <ramBufferSizeMB>32</ramBufferSizeMB>
> <maxMergeDocs>2147483647</maxMergeDocs>
>  <maxFieldLength>10000</maxFieldLength>
> <writeLockTimeout>1000</writeLockTimeout>
>  <commitLockTimeout>10000</commitLockTimeout>
> <lockType>simple</lockType>
> </indexDefaults>
>
>
> I have to use two workers because we are indexing a lot and doing it 1
> worker will take a long time. The thing is, the errors is randomly appearing
> and no clear path why is it doing that.
>
> May I doing some odd here?
>
> Sorry for such a long email :)
>
> Thanks,
> Renz
>

Reply via email to