This is a very strange error.  I have another index (nearly identical
solrconfig.xml and similar schema) running Solr 4.9.1 on Oracle JDK 8u60
which works perfectly.  Those systems are running Ubuntu 14.

Sending to a different index on different servers running under Oracle
JDK 7u72 on CentOS 6 (one copy of the index is running 4.7.2 and the
other is running 4.9.1), I get an exception.  It does appear to at least
partially succeed in running the request -- the response is over 5000
lines long, and except for the very end, looks like a good response.

This is the (slightly redacted) URL I'm trying -- it is for a monitoring
script that pulls all the most recent documents and groups it by
provider, with 10 docs for each provider.

http://idxb1.REDACTED.com:8981/solr/ncmain/lbcheck?q=*:*&indent=true&rows=1000&fl=did,tag_id,post_date&group=true&group.field=ip&group.limit=10&group.sort=post_date%20desc

The "ncmain" core is a core with an empty index that includes a "shards"
parameter in solrconfig.xml and a "shards.qt" parameter to send it to
the same handler (/lbcheck) where the request was received.

If I send the request individually to all the shards, every shard works,
but as soon as I send it distributed, I get the following exception. 
This is on Solr 4.9.1.  Solr 4.7.2 is similar, except the error is
missing the stacktrace, I only see the "NullPointerException" error with
nothing else.

java.lang.NullPointerException
    at
org.apache.solr.response.XMLWriter.writeSolrDocument(XMLWriter.java:191)
    at
org.apache.solr.response.TextResponseWriter.writeSolrDocumentList(TextResponseWriter.java:220)
    at
org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWriter.java:182)
    at org.apache.solr.response.XMLWriter.writeNamedList(XMLWriter.java:234)
    at
org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWriter.java:186)
    at org.apache.solr.response.XMLWriter.writeArray(XMLWriter.java:280)
    at
org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWriter.java:188)
    at org.apache.solr.response.XMLWriter.writeNamedList(XMLWriter.java:234)
    at
org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWriter.java:186)
    at org.apache.solr.response.XMLWriter.writeNamedList(XMLWriter.java:234)
    at
org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWriter.java:186)
    at org.apache.solr.response.XMLWriter.writeResponse(XMLWriter.java:112)
    at
org.apache.solr.response.XMLResponseWriter.write(XMLResponseWriter.java:40)
    at
org.apache.solr.servlet.SolrDispatchFilter.writeResponse(SolrDispatchFilter.java:765)
    at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:426)
    at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
    at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)
    at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
    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:1086)
    at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
    at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
    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:370)
    at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
    at
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
    at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
    at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
    at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
    at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    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:745)

The same thing happens with the JSON writer, with JSON classes instead
of XML.

The config difference between the shard cores and the ncmain core is here:

http://apaste.info/hnh

The "/lbcheck" handler is defined in the included file named
lbRequestHandler.xml.

Thanks,
Shawn

Reply via email to