You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Rinesh1 <ri...@infosys.com> on 2008/12/06 09:56:17 UTC

Solr Locking Issue

Hi,
     Please help me with the following scenario.
     I have a solr data folder "SOLR_DATA"
   
     I have 2 web applications solr1 and solr 2 referring to the same
SOLR_DATA folder.
     I am trying to index data using solr1/update and solr2/update
sequentially.

    Indexing using the first web app happens fine.
    But when I try using the second web app, I am getting the following
error
   SEVERE: org.apache.lucene.store.LockObtainFailedException: Lock obtain
timed out: SimpleFSLock@Y:\apache-solr-1.2.0\example\solr\data\index\writ
e.lock
        at org.apache.lucene.store.Lock.obtain(Lock.java:70)
        at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:579)
        at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:341)
        at
org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:65)
        at
org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:120)
        at
org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:181)
        at
org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:259)
        at
org.apache.solr.handler.XmlUpdateRequestHandler.update(XmlUpdateRequestHandler.java:166)
        at
org.apache.solr.handler.XmlUpdateRequestHandler.handleRequestBody(XmlUpdateRequestHandler.java:84)
        at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:77)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:658)
        at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:191)
        at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:159)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        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:230)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
        at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
        at
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
        at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:595)
     
       Looks like there is some locking happening .
       How can I unlock it.Is it because I have not committed the data after
indexing from the first web application.
      This was mainly to test whether N web applications can share same
SOLR_DATA folder.

       Please provide your inputs .
Thanks in advance,
Rinesh Kumar.


  

-- 
View this message in context: http://www.nabble.com/Solr-Locking-Issue-tp20868016p20868016.html
Sent from the Solr - User mailing list archive at Nabble.com.


Re: Solr Locking Issue

Posted by Grant Ingersoll <gs...@apache.org>.
Typically this is handle through Solr's built-in replication  
capabilities.    This is commonly referred to as a master/slave or  
master/worker setup whereby indexing takes place in one instance of  
Solr, and then the worker nodes pull snapshots from the master on a  
regular basis (I've seen people do this as often as every couple of  
minutes, depending on hardware).

I suppose you might be able to use your setup if you only ever had  
indexing requests go to one app server, but you would still need a way  
for the other nodes to know when to open a new searcher on the index.   
Solr's replication stuff takes care of all of this.

See http://wiki.apache.org/solr/#head-b616a8e7e66e56d004127f33096c4420a13d2b25 
  and http://www.ibm.com/developerworks/java/library/j-solr2/#dist and  
also http://www.ibm.com/developerworks/java/library/j-solr-update/?S_TACT=105AGX01&S_CMP=HP


On Dec 6, 2008, at 7:35 AM, Rinesh1 wrote:

>
> Hi Grant,
>     Q.Why do you need two web apps  pointing to the same Solr data
> directory?
>     A.I am planning to deploy solr in a load balanced environment  
> where
> there will be 3 web servers and 3 app servers.So there will be solr  
> web app
> deployed in 3 app servers and there will be 1 SOLR_DATA folder  
> shared in the
> storage area network for all 3 solr web apps to search.Similarly we  
> will
> have appX running on 3 app servers which can indexing data to the same
> repository using the respective solr web app.I am trying to share  
> the same
> SOLR_DATA folder for simplifying maintainance.
>     Q.Why can't your two webapps share a single Solr instance?
>      A.As I understand you are asking why applications using solr  
> cannot
> index data to the same solr instance.Reason being failure of one of  
> the app
> server should not lead to failure of the platform or I can say to  
> take all
> the advantages of load balancing.
>
>  Please inform if this is the right way of deployment or there is  
> other
> better alternative.
>
> Regards,
> Rinesh.
>
>
> Grant Ingersoll-6 wrote:
>>
>> In Lucene (hence Solr) only one IndexWriter may write to an index  
>> at a
>> time (by design), so pointing two separate Solr instances at the same
>> index will result in the lock issue you describe.
>>
>> I guess the question back to you is, why do you need two web apps
>> pointing to the same Solr data directory?  Why can't your two webapps
>> share a single Solr instance?
>>
>> On Dec 6, 2008, at 5:45 AM, Rinesh1 wrote:
>>
>>>
>>> Hi,
>>>   Just adding some additional steps I have tried.
>>>   I have tried the following scenarios for testing this.
>>>
>>>    FIRST
>>>
>>>   1.Index 5000 docs to solr using the FIRST web app
>>>    2.send a commit command from the SECOND web app
>>>    3.Tried indexing docs from the SECOND web app.
>>>            LOCKING ISSUE EXISTS
>>>
>>>   SECOND
>>>    1.Index 5000 docs to solr using the FIRST web app
>>>    2.send a commit command from the FIRST web app
>>>    3.Tried indexing docs from the SECOND web app.
>>>    THERE IS NO LOCKING ISSUE NOW
>>>
>>>   Is commiting the only solution .Is there any other solution
>>>
>>> Regards,
>>> Rinesh
>>>
>>> Rinesh1 wrote:
>>>>
>>>> Hi,
>>>>    Please help me with the following scenario.
>>>>    I have a solr data folder "SOLR_DATA"
>>>>
>>>>    I have 2 web applications solr1 and solr 2 referring to the same
>>>> SOLR_DATA folder.
>>>>    I am trying to index data using solr1/update and solr2/update
>>>> sequentially.
>>>>
>>>>   Indexing using the first web app happens fine.
>>>>   But when I try using the second web app, I am getting the
>>>> following
>>>> error
>>>>  SEVERE: org.apache.lucene.store.LockObtainFailedException: Lock
>>>> obtain
>>>> timed out: SimpleFSLock@Y:\apache-solr-1.2.0\example\solr\data 
>>>> \index
>>>> \writ
>>>> e.lock
>>>>       at org.apache.lucene.store.Lock.obtain(Lock.java:70)
>>>>       at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:
>>>> 579)
>>>>       at
>>>> org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:341)
>>>>       at
>>>> org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:
>>>> 65)
>>>>       at
>>>> org
>>>> .apache
>>>> .solr 
>>>> .update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:
>>>> 120)
>>>>       at
>>>> org
>>>> .apache
>>>> .solr
>>>> .update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:
>>>> 181)
>>>>       at
>>>> org
>>>> .apache
>>>> .solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:
>>>> 259)
>>>>       at
>>>> org
>>>> .apache
>>>> .solr
>>>> .handler
>>>> .XmlUpdateRequestHandler.update(XmlUpdateRequestHandler.java:166)
>>>>       at
>>>> org
>>>> .apache
>>>> .solr
>>>> .handler
>>>> .XmlUpdateRequestHandler
>>>> .handleRequestBody(XmlUpdateRequestHandler.java:84)
>>>>       at
>>>> org
>>>> .apache
>>>> .solr
>>>> .handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java: 
>>>> 77)
>>>>       at org.apache.solr.core.SolrCore.execute(SolrCore.java:658)
>>>>       at
>>>> org
>>>> .apache
>>>> .solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java: 
>>>> 191)
>>>>       at
>>>> org
>>>> .apache
>>>> .solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:
>>>> 159)
>>>>       at
>>>> org
>>>> .apache
>>>> .catalina
>>>> .core
>>>> .ApplicationFilterChain
>>>> .internalDoFilter(ApplicationFilterChain.java:235)
>>>>       at
>>>> org
>>>> .apache
>>>> .catalina
>>>> .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
>>>> 206)
>>>>       at
>>>> org
>>>> .jboss
>>>> .web
>>>> .tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java: 
>>>> 96)
>>>>       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:230)
>>>>       at
>>>> org
>>>> .apache
>>>> .catalina
>>>> .core.StandardContextValve.invoke(StandardContextValve.java:175)
>>>>       at
>>>> org
>>>> .jboss
>>>> .web
>>>> .tomcat
>>>> .security
>>>> .SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
>>>>       at
>>>> org
>>>> .jboss
>>>> .web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:
>>>> 84)
>>>>       at
>>>> org
>>>> .apache
>>>> .catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>>>>       at
>>>> org
>>>> .apache
>>>> .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
>>>>       at
>>>> org
>>>> .jboss
>>>> .web
>>>> .tomcat
>>>> .service
>>>> .jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
>>>>       at
>>>> org
>>>> .apache
>>>> .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
>>>> 109)
>>>>       at
>>>> org
>>>> .apache 
>>>> .catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
>>>> 241)
>>>>       at
>>>> org
>>>> .apache.coyote.http11.Http11Processor.process(Http11Processor.java:
>>>> 844)
>>>>       at
>>>> org.apache.coyote.http11.Http11Protocol
>>>> $Http11ConnectionHandler.process(Http11Protocol.java:580)
>>>>       at
>>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
>>>> 447)
>>>>       at java.lang.Thread.run(Thread.java:595)
>>>>
>>>>      Looks like there is some locking happening .
>>>>      How can I unlock it.Is it because I have not committed the  
>>>> data
>>>> after indexing from the first web application.
>>>>     This was mainly to test whether N web applications can share
>>>> same
>>>> SOLR_DATA folder.
>>>>
>>>>      Please provide your inputs .
>>>> Thanks in advance,
>>>> Rinesh Kumar.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>> -- 
>>> View this message in context:
>>> http://www.nabble.com/Solr-Locking-Issue-tp20868016p20868783.html
>>> Sent from the Solr - User mailing list archive at Nabble.com.
>>>
>>
>> --------------------------
>> Grant Ingersoll
>>
>> Lucene Helpful Hints:
>> http://wiki.apache.org/lucene-java/BasicsOfPerformance
>> http://wiki.apache.org/lucene-java/LuceneFAQ
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
> -- 
> View this message in context: http://www.nabble.com/Solr-Locking-Issue-tp20868016p20869645.html
> Sent from the Solr - User mailing list archive at Nabble.com.
>

--------------------------
Grant Ingersoll

Lucene Helpful Hints:
http://wiki.apache.org/lucene-java/BasicsOfPerformance
http://wiki.apache.org/lucene-java/LuceneFAQ











Re: Solr Locking Issue

Posted by Rinesh1 <ri...@infosys.com>.
Hi Grant,
     Q.Why do you need two web apps  pointing to the same Solr data
directory?
     A.I am planning to deploy solr in a load balanced environment where
there will be 3 web servers and 3 app servers.So there will be solr web app
deployed in 3 app servers and there will be 1 SOLR_DATA folder shared in the
storage area network for all 3 solr web apps to search.Similarly we will
have appX running on 3 app servers which can indexing data to the same
repository using the respective solr web app.I am trying to share the same
SOLR_DATA folder for simplifying maintainance.
     Q.Why can't your two webapps share a single Solr instance?
      A.As I understand you are asking why applications using solr cannot
index data to the same solr instance.Reason being failure of one of the app
server should not lead to failure of the platform or I can say to take all
the advantages of load balancing.

  Please inform if this is the right way of deployment or there is other
better alternative.

Regards,
Rinesh.


Grant Ingersoll-6 wrote:
> 
> In Lucene (hence Solr) only one IndexWriter may write to an index at a  
> time (by design), so pointing two separate Solr instances at the same  
> index will result in the lock issue you describe.
> 
> I guess the question back to you is, why do you need two web apps  
> pointing to the same Solr data directory?  Why can't your two webapps  
> share a single Solr instance?
> 
> On Dec 6, 2008, at 5:45 AM, Rinesh1 wrote:
> 
>>
>> Hi,
>>    Just adding some additional steps I have tried.
>>    I have tried the following scenarios for testing this.
>>
>>     FIRST
>>
>>    1.Index 5000 docs to solr using the FIRST web app
>>     2.send a commit command from the SECOND web app
>>     3.Tried indexing docs from the SECOND web app.
>>             LOCKING ISSUE EXISTS
>>
>>    SECOND
>>     1.Index 5000 docs to solr using the FIRST web app
>>     2.send a commit command from the FIRST web app
>>     3.Tried indexing docs from the SECOND web app.
>>     THERE IS NO LOCKING ISSUE NOW
>>
>>    Is commiting the only solution .Is there any other solution
>>
>> Regards,
>> Rinesh
>>
>> Rinesh1 wrote:
>>>
>>> Hi,
>>>     Please help me with the following scenario.
>>>     I have a solr data folder "SOLR_DATA"
>>>
>>>     I have 2 web applications solr1 and solr 2 referring to the same
>>> SOLR_DATA folder.
>>>     I am trying to index data using solr1/update and solr2/update
>>> sequentially.
>>>
>>>    Indexing using the first web app happens fine.
>>>    But when I try using the second web app, I am getting the  
>>> following
>>> error
>>>   SEVERE: org.apache.lucene.store.LockObtainFailedException: Lock  
>>> obtain
>>> timed out: SimpleFSLock@Y:\apache-solr-1.2.0\example\solr\data\index 
>>> \writ
>>> e.lock
>>>        at org.apache.lucene.store.Lock.obtain(Lock.java:70)
>>>        at org.apache.lucene.index.IndexWriter.init(IndexWriter.java: 
>>> 579)
>>>        at
>>> org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:341)
>>>        at
>>> org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java: 
>>> 65)
>>>        at
>>> org 
>>> .apache 
>>> .solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java: 
>>> 120)
>>>        at
>>> org 
>>> .apache 
>>> .solr 
>>> .update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java: 
>>> 181)
>>>        at
>>> org 
>>> .apache 
>>> .solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java: 
>>> 259)
>>>        at
>>> org 
>>> .apache 
>>> .solr 
>>> .handler 
>>> .XmlUpdateRequestHandler.update(XmlUpdateRequestHandler.java:166)
>>>        at
>>> org 
>>> .apache 
>>> .solr 
>>> .handler 
>>> .XmlUpdateRequestHandler 
>>> .handleRequestBody(XmlUpdateRequestHandler.java:84)
>>>        at
>>> org 
>>> .apache 
>>> .solr 
>>> .handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:77)
>>>        at org.apache.solr.core.SolrCore.execute(SolrCore.java:658)
>>>        at
>>> org 
>>> .apache 
>>> .solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:191)
>>>        at
>>> org 
>>> .apache 
>>> .solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java: 
>>> 159)
>>>        at
>>> org 
>>> .apache 
>>> .catalina 
>>> .core 
>>> .ApplicationFilterChain 
>>> .internalDoFilter(ApplicationFilterChain.java:235)
>>>        at
>>> org 
>>> .apache 
>>> .catalina 
>>> .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 
>>> 206)
>>>        at
>>> org 
>>> .jboss 
>>> .web 
>>> .tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>>>        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:230)
>>>        at
>>> org 
>>> .apache 
>>> .catalina 
>>> .core.StandardContextValve.invoke(StandardContextValve.java:175)
>>>        at
>>> org 
>>> .jboss 
>>> .web 
>>> .tomcat 
>>> .security 
>>> .SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
>>>        at
>>> org 
>>> .jboss 
>>> .web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java: 
>>> 84)
>>>        at
>>> org 
>>> .apache 
>>> .catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>>>        at
>>> org 
>>> .apache 
>>> .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
>>>        at
>>> org 
>>> .jboss 
>>> .web 
>>> .tomcat 
>>> .service 
>>> .jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
>>>        at
>>> org 
>>> .apache 
>>> .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: 
>>> 109)
>>>        at
>>> org 
>>> .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 
>>> 241)
>>>        at
>>> org 
>>> .apache.coyote.http11.Http11Processor.process(Http11Processor.java: 
>>> 844)
>>>        at
>>> org.apache.coyote.http11.Http11Protocol 
>>> $Http11ConnectionHandler.process(Http11Protocol.java:580)
>>>        at
>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java: 
>>> 447)
>>>        at java.lang.Thread.run(Thread.java:595)
>>>
>>>       Looks like there is some locking happening .
>>>       How can I unlock it.Is it because I have not committed the data
>>> after indexing from the first web application.
>>>      This was mainly to test whether N web applications can share  
>>> same
>>> SOLR_DATA folder.
>>>
>>>       Please provide your inputs .
>>> Thanks in advance,
>>> Rinesh Kumar.
>>>
>>>
>>>
>>>
>>>
>>
>> -- 
>> View this message in context:
>> http://www.nabble.com/Solr-Locking-Issue-tp20868016p20868783.html
>> Sent from the Solr - User mailing list archive at Nabble.com.
>>
> 
> --------------------------
> Grant Ingersoll
> 
> Lucene Helpful Hints:
> http://wiki.apache.org/lucene-java/BasicsOfPerformance
> http://wiki.apache.org/lucene-java/LuceneFAQ
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Solr-Locking-Issue-tp20868016p20869645.html
Sent from the Solr - User mailing list archive at Nabble.com.


Re: Solr Locking Issue

Posted by Grant Ingersoll <gs...@apache.org>.
In Lucene (hence Solr) only one IndexWriter may write to an index at a  
time (by design), so pointing two separate Solr instances at the same  
index will result in the lock issue you describe.

I guess the question back to you is, why do you need two web apps  
pointing to the same Solr data directory?  Why can't your two webapps  
share a single Solr instance?

On Dec 6, 2008, at 5:45 AM, Rinesh1 wrote:

>
> Hi,
>    Just adding some additional steps I have tried.
>    I have tried the following scenarios for testing this.
>
>     FIRST
>
>    1.Index 5000 docs to solr using the FIRST web app
>     2.send a commit command from the SECOND web app
>     3.Tried indexing docs from the SECOND web app.
>             LOCKING ISSUE EXISTS
>
>    SECOND
>     1.Index 5000 docs to solr using the FIRST web app
>     2.send a commit command from the FIRST web app
>     3.Tried indexing docs from the SECOND web app.
>     THERE IS NO LOCKING ISSUE NOW
>
>    Is commiting the only solution .Is there any other solution
>
> Regards,
> Rinesh
>
> Rinesh1 wrote:
>>
>> Hi,
>>     Please help me with the following scenario.
>>     I have a solr data folder "SOLR_DATA"
>>
>>     I have 2 web applications solr1 and solr 2 referring to the same
>> SOLR_DATA folder.
>>     I am trying to index data using solr1/update and solr2/update
>> sequentially.
>>
>>    Indexing using the first web app happens fine.
>>    But when I try using the second web app, I am getting the  
>> following
>> error
>>   SEVERE: org.apache.lucene.store.LockObtainFailedException: Lock  
>> obtain
>> timed out: SimpleFSLock@Y:\apache-solr-1.2.0\example\solr\data\index 
>> \writ
>> e.lock
>>        at org.apache.lucene.store.Lock.obtain(Lock.java:70)
>>        at org.apache.lucene.index.IndexWriter.init(IndexWriter.java: 
>> 579)
>>        at
>> org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:341)
>>        at
>> org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java: 
>> 65)
>>        at
>> org 
>> .apache 
>> .solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java: 
>> 120)
>>        at
>> org 
>> .apache 
>> .solr 
>> .update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java: 
>> 181)
>>        at
>> org 
>> .apache 
>> .solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java: 
>> 259)
>>        at
>> org 
>> .apache 
>> .solr 
>> .handler 
>> .XmlUpdateRequestHandler.update(XmlUpdateRequestHandler.java:166)
>>        at
>> org 
>> .apache 
>> .solr 
>> .handler 
>> .XmlUpdateRequestHandler 
>> .handleRequestBody(XmlUpdateRequestHandler.java:84)
>>        at
>> org 
>> .apache 
>> .solr 
>> .handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:77)
>>        at org.apache.solr.core.SolrCore.execute(SolrCore.java:658)
>>        at
>> org 
>> .apache 
>> .solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:191)
>>        at
>> org 
>> .apache 
>> .solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java: 
>> 159)
>>        at
>> org 
>> .apache 
>> .catalina 
>> .core 
>> .ApplicationFilterChain 
>> .internalDoFilter(ApplicationFilterChain.java:235)
>>        at
>> org 
>> .apache 
>> .catalina 
>> .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 
>> 206)
>>        at
>> org 
>> .jboss 
>> .web 
>> .tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>>        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:230)
>>        at
>> org 
>> .apache 
>> .catalina 
>> .core.StandardContextValve.invoke(StandardContextValve.java:175)
>>        at
>> org 
>> .jboss 
>> .web 
>> .tomcat 
>> .security 
>> .SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
>>        at
>> org 
>> .jboss 
>> .web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java: 
>> 84)
>>        at
>> org 
>> .apache 
>> .catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>>        at
>> org 
>> .apache 
>> .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
>>        at
>> org 
>> .jboss 
>> .web 
>> .tomcat 
>> .service 
>> .jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
>>        at
>> org 
>> .apache 
>> .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: 
>> 109)
>>        at
>> org 
>> .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 
>> 241)
>>        at
>> org 
>> .apache.coyote.http11.Http11Processor.process(Http11Processor.java: 
>> 844)
>>        at
>> org.apache.coyote.http11.Http11Protocol 
>> $Http11ConnectionHandler.process(Http11Protocol.java:580)
>>        at
>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java: 
>> 447)
>>        at java.lang.Thread.run(Thread.java:595)
>>
>>       Looks like there is some locking happening .
>>       How can I unlock it.Is it because I have not committed the data
>> after indexing from the first web application.
>>      This was mainly to test whether N web applications can share  
>> same
>> SOLR_DATA folder.
>>
>>       Please provide your inputs .
>> Thanks in advance,
>> Rinesh Kumar.
>>
>>
>>
>>
>>
>
> -- 
> View this message in context: http://www.nabble.com/Solr-Locking-Issue-tp20868016p20868783.html
> Sent from the Solr - User mailing list archive at Nabble.com.
>

--------------------------
Grant Ingersoll

Lucene Helpful Hints:
http://wiki.apache.org/lucene-java/BasicsOfPerformance
http://wiki.apache.org/lucene-java/LuceneFAQ











Re: Solr Locking Issue

Posted by Rinesh1 <ri...@infosys.com>.
Hi,
    Just adding some additional steps I have tried.
    I have tried the following scenarios for testing this.

     FIRST

    1.Index 5000 docs to solr using the FIRST web app
     2.send a commit command from the SECOND web app
     3.Tried indexing docs from the SECOND web app.
             LOCKING ISSUE EXISTS
 
    SECOND 
     1.Index 5000 docs to solr using the FIRST web app
     2.send a commit command from the FIRST web app
     3.Tried indexing docs from the SECOND web app.
     THERE IS NO LOCKING ISSUE NOW

    Is commiting the only solution .Is there any other solution

Regards,
Rinesh

Rinesh1 wrote:
> 
> Hi,
>      Please help me with the following scenario.
>      I have a solr data folder "SOLR_DATA"
>    
>      I have 2 web applications solr1 and solr 2 referring to the same
> SOLR_DATA folder.
>      I am trying to index data using solr1/update and solr2/update
> sequentially.
> 
>     Indexing using the first web app happens fine.
>     But when I try using the second web app, I am getting the following
> error
>    SEVERE: org.apache.lucene.store.LockObtainFailedException: Lock obtain
> timed out: SimpleFSLock@Y:\apache-solr-1.2.0\example\solr\data\index\writ
> e.lock
>         at org.apache.lucene.store.Lock.obtain(Lock.java:70)
>         at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:579)
>         at
> org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:341)
>         at
> org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:65)
>         at
> org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:120)
>         at
> org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:181)
>         at
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:259)
>         at
> org.apache.solr.handler.XmlUpdateRequestHandler.update(XmlUpdateRequestHandler.java:166)
>         at
> org.apache.solr.handler.XmlUpdateRequestHandler.handleRequestBody(XmlUpdateRequestHandler.java:84)
>         at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:77)
>         at org.apache.solr.core.SolrCore.execute(SolrCore.java:658)
>         at
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:191)
>         at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:159)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>         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:230)
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>         at
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
>         at
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
>         at
> org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
>         at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
>         at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:595)
>      
>        Looks like there is some locking happening .
>        How can I unlock it.Is it because I have not committed the data
> after indexing from the first web application.
>       This was mainly to test whether N web applications can share same
> SOLR_DATA folder.
> 
>        Please provide your inputs .
> Thanks in advance,
> Rinesh Kumar.
> 
> 
>   
> 
> 

-- 
View this message in context: http://www.nabble.com/Solr-Locking-Issue-tp20868016p20868783.html
Sent from the Solr - User mailing list archive at Nabble.com.