Shawn,

Could this be a side-effect from SOLR-4019, in branch_4.0 this was commit 
r1405894 ?  Prior to this commit, PingRequestHandler would throw a 
SolrException for 503/Bad Request.  The change is that the exception isn't 
actually thrown but rather sent in place of the response.  This prevents the 
container from logging huge stack traces just because PingrequestHandler is in 
a "disabled" state.  Prior to this, SolrException had logging disabled for 
503's with hardcoding, but this broke other uses of 503 SE's.

James Dyer
E-Commerce Systems
Ingram Content Group
(615) 213-4311


-----Original Message-----
From: Shawn Heisey [mailto:s...@elyograg.org] 
Sent: Tuesday, November 06, 2012 1:25 AM
To: solr-user@lucene.apache.org
Subject: Problem with ping handler, SolrJ 4.1-SNAPSHOT, Solr 3.5.0

If I send a ping request to Solr 4.1 from SolrJ 4.1, it works.  I don't 
have an exact revision number from branch_4x, I don't know how to get it 
from SolrJ.  The 4.1 server is running solr-impl 4.1-SNAPSHOT 1401798M 
with the patch from SOLR-1972 applied, and it's somewhat newer than SolrJ.


Java code snippets:

private static final String PING_HANDLER = "/admin/ping";

query.setRequestHandler(PING_HANDLER);
response = _querySolr.query(query);


If I use this exact same code to talk to a Solr 3.5.0 server (older 
version of the SOLR-1972 patch applied) with the ping handler in the 
"enabled" state, I get the following exception.  The /admin/ping handler 
works in a browser on both Solr versions:

Caused by: org.apache.solr.client.solrj.SolrServerException: Error 
executing query
     at 
org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:98)
     at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)
     at com.newscom.common.solr.Core.ping(Core.java:396)
     ... 4 more
Caused by: java.lang.RuntimeException: Invalid version (expected 2, but 
60) or the data in not in 'javabin' format
     at 
org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:109)
     at 
org.apache.solr.client.solrj.impl.BinaryResponseParser.processResponse(BinaryResponseParser.java:41)
     at 
org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:384)
     at 
org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:181)
     at 
org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:90)
     ... 6 more

If I use the XMLResponseParser instead, then I get a different exception:

Caused by: org.apache.solr.common.SolrException: parsing error
     at 
org.apache.solr.client.solrj.impl.XMLResponseParser.processResponse(XMLResponseParser.java:143)
     at 
org.apache.solr.client.solrj.impl.XMLResponseParser.processResponse(XMLResponseParser.java:104)
     at 
org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:384)
     at 
org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:181)
     at 
org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:90)
     at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)
     at com.newscom.common.solr.Core.ping(Core.java:398)
     ... 4 more
Caused by: java.lang.Exception: really needs to be response or result.  
not:html
     at 
org.apache.solr.client.solrj.impl.XMLResponseParser.processResponse(XMLResponseParser.java:134)
     ... 10 more

I'm already dealing with the expected "Service Unavailable" exception, 
this is something different.  Is it going to be possible to make this 
work?  Should I file an issue in Jira?  Is the problem in the newer 
SolrJ or in the older Solr?  At this time I do not really need the 
information in the response, I just need to be able to judge success 
(Solr is up and working) by nothing being thrown, and be able to look 
into any exception thrown to see whether I've got a disabled handler or 
an error condition.

Thanks,
Shawn



Reply via email to