[ 
https://issues.apache.org/jira/browse/SOLR-7746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14706065#comment-14706065
 ] 

Gregory Chanan commented on SOLR-7746:
--------------------------------------

Looks good Michael, a few questions/comments:

{code}
(params.getBool(ShardParams.IS_SHARD,false))
{code}

Convention is to put a space after ",".  Also, are you using tabs? please 
remove them.

{code}
    handler = core.getRequestHandler( null );
        ModifiableSolrParams wparams = new ModifiableSolrParams(params);
        wparams.remove(CommonParams.QT);
        req.setParams(wparams);
{code}
Is it correct ot remove the QT or replace the QT with the default handler you 
are calling?

{code}
 // In case it's a query for shard, return the result from delegated handler 
for distributed query to merge result
      if (params.getBool(ShardParams.IS_SHARD,false)) {
        core.execute(handler, req, rsp );
        ex = rsp.getException(); 
      } else {
       core.execute(handler, req, pingrsp );
        ex = pingrsp.getException(); 
      }
...
 if (!params.getBool(ShardParams.IS_SHARD,false)) {
    rsp.add( "status", "OK" );
 }
{code}

Is all the if-elsing necessary?  What happens if you use pingrsp for whether 
IS_SHARD is true or not and then remove the if around the status check?  What 
you have now doesn't look correct to me, the non-IS_SHARD case won't have OK 
status, right?

> Ping requests stopped working with distrib=true in Solr 5.2.1
> -------------------------------------------------------------
>
>                 Key: SOLR-7746
>                 URL: https://issues.apache.org/jira/browse/SOLR-7746
>             Project: Solr
>          Issue Type: Bug
>          Components: SolrCloud
>    Affects Versions: 5.2.1
>            Reporter: Alexey Serba
>         Attachments: SOLR-7746.patch, SOLR-7746.patch, SOLR-7746.patch
>
>
> {noformat:title="steps to reproduce"}
> # start 1 node SolrCloud cluster
> sh> ./bin/solr -c -p 8888
> # create a test collection (we won’t use it, but I just want to it to load 
> solr configs to Zk)
> ./bin/solr create_collection -c test -d sample_techproducts_configs -p 8888
> # create another test collection with 2 shards
> curl 
> 'http://localhost:8888/solr/admin/collections?action=CREATE&name=test2&numShards=2&replicationFactor=1&maxShardsPerNode=2&collection.configName=test'
> # try distrib ping request
> curl 
> 'http://localhost:8888/solr/test2/admin/ping?wt=json&distrib=true&indent=true'
> ...
>   "error":{
>     "msg":"Ping query caused exception: Error from server at 
> http://192.168.59.3:8888/solr/test2_shard2_replica1: Cannot execute the 
> PingRequestHandler recursively"
> ...
> {noformat}
> {noformat:title="Exception"}
> 2116962 [qtp599601600-13] ERROR org.apache.solr.core.SolrCore  [test2 shard2 
> core_node1 test2_shard2_replica1] – org.apache.solr.common.SolrException: 
> Cannot execute the PingRequestHandler recursively
>       at 
> org.apache.solr.handler.PingRequestHandler.handlePing(PingRequestHandler.java:246)
>       at 
> org.apache.solr.handler.PingRequestHandler.handleRequestBody(PingRequestHandler.java:211)
>       at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
>       at org.apache.solr.core.SolrCore.execute(SolrCore.java:2064)
>       at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:654)
>       at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:450)
>       at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:227)
>       at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to