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 Matthew Runo <mr...@zappos.com> on 2007/07/12 22:32:10 UTC

Deleting from a very active index

Hello!

I'm trying to remove a whole brand from our search index, but at the  
same time we're also running an import for others. This means the  
index is extreamly active at this time.

I am getting a lock timeout error, but not sure what to do about  
it... should I just keep trying till it can get the lock to do the  
delete?

[mruno@dev14:/home/mruno]$ curl http://search1.zappos.com:8080/solr/ 
update --silent --data-binary "<delete><query>brand:Harley-Davidson</ 
query></delete>" -H 'Content-type:text/xml; charset=utf-8'
<result status="1">org.apache.solr.core.SolrException: Error deleting  
doc# 966
         at org.apache.solr.update.UpdateHandler 
$DeleteHitCollector.collect(UpdateHandler.java:175)
         at org.apache.lucene.search.Scorer.score(Scorer.java:49)
         at org.apache.lucene.search.IndexSearcher.search 
(IndexSearcher.java:146)
         at org.apache.solr.search.SolrIndexSearcher.search 
(SolrIndexSearcher.java:407)
         at org.apache.lucene.search.Searcher.search(Searcher.java:118)
         at org.apache.solr.update.DirectUpdateHandler2.deleteByQuery 
(DirectUpdateHandler2.java:343)
         at org.apache.solr.handler.XmlUpdateRequestHandler.update 
(XmlUpdateRequestHandler.java:260)
         at  
org.apache.solr.handler.XmlUpdateRequestHandler.doLegacyUpdate 
(XmlUpdateRequestHandler.java:355)
         at org.apache.solr.servlet.SolrUpdateServlet.doPost 
(SolrUpdateServlet.java:58)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         at  
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
(ApplicationFilterChain.java:269)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
(ApplicationFilterChain.java:188)
         at org.apache.solr.servlet.SolrDispatchFilter.doFilter 
(SolrDispatchFilter.java:185)
         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:174)
         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.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)
Caused by: org.apache.lucene.store.LockObtainFailedException: Lock  
obtain timed out: SimpleFSLock@/opt/solr/data/index/write.lock
         at org.apache.lucene.store.Lock.obtain(Lock.java:70)
         at org.apache.lucene.index.IndexReader.acquireWriteLock 
(IndexReader.java:626)
         at org.apache.lucene.index.IndexReader.deleteDocument 
(IndexReader.java:660)
         at org.apache.solr.update.UpdateHandler 
$DeleteHitCollector.collect(UpdateHandler.java:170)
         ... 27 more

+--------------------------------------------------------+
  | Matthew Runo
  | Zappos Development
  | mruno@zappos.com
  | 702-943-7833
+--------------------------------------------------------+



Re: Deleting from a very active index

Posted by Yonik Seeley <yo...@apache.org>.
I was going to say... that exception should never happen since solr
controls and synchronizes adds/deletes at a higher layer (with only
one solr instance accessing an index, we don't really need lucene
level locking at all).

One major cause of this is a crash/restart of the JVM leaving a stale
lock file behind.  Those can be removed automatically at startup with
a tweak in solrconfig.xml

-Yonik


On 7/12/07, Matthew Runo <mr...@zappos.com> wrote:
> It looks like somehow the write.lock got hung. I manually removed the
> lock, and now things are good.
>
> Very strange.

Re: Deleting from a very active index

Posted by Matthew Runo <mr...@zappos.com>.
It looks like somehow the write.lock got hung. I manually removed the  
lock, and now things are good.

Very strange.

+--------------------------------------------------------+
  | Matthew Runo
  | Zappos Development
  | mruno@zappos.com
  | 702-943-7833
+--------------------------------------------------------+


On Jul 12, 2007, at 1:32 PM, Matthew Runo wrote:

> Hello!
>
> I'm trying to remove a whole brand from our search index, but at  
> the same time we're also running an import for others. This means  
> the index is extreamly active at this time.
>
> I am getting a lock timeout error, but not sure what to do about  
> it... should I just keep trying till it can get the lock to do the  
> delete?
>
> [mruno@dev14:/home/mruno]$ curl http://search1.zappos.com:8080/solr/ 
> update --silent --data-binary "<delete><query>brand:Harley- 
> Davidson</query></delete>" -H 'Content-type:text/xml; charset=utf-8'
> <result status="1">org.apache.solr.core.SolrException: Error  
> deleting doc# 966
>         at org.apache.solr.update.UpdateHandler 
> $DeleteHitCollector.collect(UpdateHandler.java:175)
>         at org.apache.lucene.search.Scorer.score(Scorer.java:49)
>         at org.apache.lucene.search.IndexSearcher.search 
> (IndexSearcher.java:146)
>         at org.apache.solr.search.SolrIndexSearcher.search 
> (SolrIndexSearcher.java:407)
>         at org.apache.lucene.search.Searcher.search(Searcher.java:118)
>         at org.apache.solr.update.DirectUpdateHandler2.deleteByQuery 
> (DirectUpdateHandler2.java:343)
>         at org.apache.solr.handler.XmlUpdateRequestHandler.update 
> (XmlUpdateRequestHandler.java:260)
>         at  
> org.apache.solr.handler.XmlUpdateRequestHandler.doLegacyUpdate 
> (XmlUpdateRequestHandler.java:355)
>         at org.apache.solr.servlet.SolrUpdateServlet.doPost 
> (SolrUpdateServlet.java:58)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java: 
> 710)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java: 
> 803)
>         at  
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
> (ApplicationFilterChain.java:269)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter 
> (ApplicationFilterChain.java:188)
>         at org.apache.solr.servlet.SolrDispatchFilter.doFilter 
> (SolrDispatchFilter.java:185)
>         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:174)
>         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.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)
> Caused by: org.apache.lucene.store.LockObtainFailedException: Lock  
> obtain timed out: SimpleFSLock@/opt/solr/data/index/write.lock
>         at org.apache.lucene.store.Lock.obtain(Lock.java:70)
>         at org.apache.lucene.index.IndexReader.acquireWriteLock 
> (IndexReader.java:626)
>         at org.apache.lucene.index.IndexReader.deleteDocument 
> (IndexReader.java:660)
>         at org.apache.solr.update.UpdateHandler 
> $DeleteHitCollector.collect(UpdateHandler.java:170)
>         ... 27 more
>
> +--------------------------------------------------------+
>  | Matthew Runo
>  | Zappos Development
>  | mruno@zappos.com
>  | 702-943-7833
> +--------------------------------------------------------+
>
>