[ https://issues.apache.org/jira/browse/SOLR-7746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14712297#comment-14712297 ]
Michael Sun commented on SOLR-7746: ----------------------------------- Attach patch with test. I tested that the test is gonna fail without change in PingRequestHandler. Also the code path in PingRequestHandler() is modified to separate the handling in case isShard is true or not to reduce if-else block. There is behavior change for PingRequestHandler in case isShard=true. In this case, it simply returns what the delegated handler returns. Javadoc is updated. Here is how new PingRequestHandler process ping request with distrib=true. This behavior change is required to aggregate results from shards (Step 7). 1. PingRequestHandler receives ping request with distrib=true. 2. Find the delegated handler, for example SearchHandler by default. 3. Call SearchHandler to handle request. 4. SearchHandler send requests to shards with distrib=false and isShard=true. 5. [Shard] PingHandler of each shard receives the request and delegate to SearchHandler. 6. [Shard] SearchHandler of shards process and return the result. 7. SearchHandler in Step3 aggregate the result of all shards. 8. Return the result to PingRequestHandler. 9. PingRequestHandler returns either success or HTTP Error code. > 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, > 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