Hi, .96 I'm trying to simulate a fault tolerance test where a shard and its replica(s) goes. down, leaving other shard(s) running. To test it, I added <str name="shards.tolerant">true</str> in my request handler under defaults section. This is to make sure that the condition is added to each query running against this request handler.
In my test environment, I have to 2 shards with a replica each. I brought down Shard 1 and Replica 1, then fired a query using SolrJ CloudSolrServer, which internally talks to the zookeeper ensemble. In my request handler, the spellcheck option is turned on. Due to this, the servers are throwing null pointer exception. Here's the stack trace. 2013-10-22 20:24:43,875] INFO482886[qtp1783079124-15] - org.apache.solr.core.SolrCore.execute(SolrCore.java:1909) - [collection1] webapp=/solr path=/testhtmlhelp params={spellcheck=on&q=xref&wt=xml&fq=TestProductLine:"ADT"&fq=TestProductRelease:"ADT+2014"&fq=language:"english"} hits=157 status=500 QTime=70 [2013-10-22 20:24:43,876]ERROR482887[qtp1783079124-15] - org.apache.solr.common.SolrException.log(SolrException.java:119) - null:java.lang.NullPointerException at org.apache.solr.handler.component.SpellCheckComponent.finishStage(SpellCheckComponent.java:323) at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:317) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904) at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:659) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:362) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:368) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72) at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Thread.java:619) Here's the query detail from the server log, as you can see the spellcheck is on. [collection1] webapp=/solr path=/testhtmlhelp params={facet=on&f.TestCategory.facet.limit=160&tie=0.01&shards.qt=/testhtmlhelp&fl=id,score&facet.field=Source2&fq=TestProductLine:"ADT"&fq=TestProductRelease:"ADT+2014"&fq=language:"english"&rows=150&defType=edismax&start=0&spellcheck=on&shards.tolerant=true&&shard.url=localhost:8984/solr/collection1/|localhost:8983/solr/collection1/&q=xref&isShard=true} hits=157 status=0 QTime=15 Now, if I comment out the spellcheck option in request handler, the query works as expected, even if the other shard and its replica is down. Is this a known bug in Solr 4.4 ? What'll be the recommended work-around to address this issue ? Any pointers will be appreciated. Thanks, Shamik