Hello,
I have this configuration where a single master builds the Solr index and it 
replicates to two slave Solr instances. Regular queries are sent only to those 
two slaves. Configurations are the same for everyone (except of replication 
section, of course).

My problem: it's happened that, in a particular query, I expected spellchecker 
to give me a suggestion. Fact is that only one of the two instances answers as 
I had expected! I checked the data directory and discovered that the failing 
instance had a data/spellchecker directory almost empty (12 KB against 7 MB of 
the other working instance). I don't understand this behaviour.

I tried to issue a spellchecker.build=true command, and this is what I've got:


Problem accessing /solr/yoox_slave/select. Reason:

    org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: 
NativeFSLock@C:\Users\sqladmin\LucidImagination\LucidWorksEnterprise\data\solr\cores\yoox_slave_1\spellchecker\write.lock

java.lang.RuntimeException: org.apache.lucene.store.LockObtainFailedException: 
Lock obtain timed out: 
NativeFSLock@C:\Users\sqladmin\LucidImagination\LucidWorksEnterprise\data\solr\cores\yoox_slave_1\spellchecker\write.lock
        at 
org.apache.solr.spelling.IndexBasedSpellChecker.build(IndexBasedSpellChecker.java:92)
        at 
org.apache.solr.handler.component.SpellCheckComponent.prepare(SpellCheckComponent.java:110)
        at 
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:173)
        at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1406)
        at 
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:353)
        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:248)
        at 
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:129)
        at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:59)
        at 
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:122)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:110)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
        at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
        at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
        at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
        at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at 
org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
        at 
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: org.apache.lucene.store.LockObtainFailedException: Lock obtain timed 
out: 
NativeFSLock@C:\Users\sqladmin\LucidImagination\LucidWorksEnterprise\data\solr\cores\yoox_slave_1\spellchecker\write.lock
        at org.apache.lucene.store.Lock.obtain(Lock.java:84)
        at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:840)
        at 
org.apache.lucene.search.spell.SpellChecker.clearIndex(SpellChecker.java:470)
        at 
org.apache.solr.spelling.IndexBasedSpellChecker.build(IndexBasedSpellChecker.java:88)
        ... 27 more


Does anybody faced a similar problem? Can you point me to the solution?


Thank you in advance

Reply via email to