You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by an...@apache.org on 2015/06/15 01:40:44 UTC
svn commit: r1685488 - in /lucene/dev/trunk/solr: CHANGES.txt
test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java
Author: andyetitmoves
Date: Sun Jun 14 23:40:43 2015
New Revision: 1685488
URL: http://svn.apache.org/r1685488
Log:
SOLR-7680: Use POST instead of GET when finding versions for mismatches with CloudInspectUtil
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1685488&r1=1685487&r2=1685488&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Sun Jun 14 23:40:43 2015
@@ -193,6 +193,9 @@ Other Changes
* SOLR-7678: Switch RTimer to use nanoTime (improves accuracy of QTime, and other times
returned by Solr handlers) (Ramkumar Aiyengar)
+* SOLR-7680: Use POST instead of GET when finding versions for mismatches with
+ CloudInspectUtil for tests (Ramkumar Aiyengar)
+
================== 5.2.1 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release
Modified: lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java?rev=1685488&r1=1685487&r2=1685488&view=diff
==============================================================================
--- lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java (original)
+++ lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/CloudInspectUtil.java Sun Jun 14 23:40:43 2015
@@ -2,6 +2,7 @@ package org.apache.solr.cloud;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrClient;
+import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
@@ -145,7 +146,7 @@ public class CloudInspectUtil {
StringBuilder sb = new StringBuilder("SolrDocumentList[sz=" + lst.size());
if (lst.size() != lst.getNumFound()) {
- sb.append(" numFound=" + lst.getNumFound());
+ sb.append(" numFound=").append(lst.getNumFound());
}
sb.append("]=");
sb.append(lst.subList(0, maxSz / 2).toString());
@@ -187,12 +188,12 @@ public class CloudInspectUtil {
controlDocList = controlClient.query(q).getResults();
if (controlDocs != controlDocList.getNumFound()) {
log.error("Something changed! control now " + controlDocList.getNumFound());
- };
+ }
cloudDocList = cloudClient.query(q).getResults();
if (cloudClientDocs != cloudDocList.getNumFound()) {
log.error("Something changed! cloudClient now " + cloudDocList.getNumFound());
- };
+ }
if (controlDocs != cloudClientDocs && (addFails != null || deleteFails != null)) {
boolean legal = CloudInspectUtil.checkIfDiffIsLegal(controlDocList, cloudDocList,
@@ -205,28 +206,35 @@ public class CloudInspectUtil {
Set<Map> differences = CloudInspectUtil.showDiff(controlDocList, cloudDocList,
"controlDocList", "cloudDocList");
- // get versions for the mismatched ids
- boolean foundId = false;
- StringBuilder ids = new StringBuilder("id:(");
- for (Map doc : differences) {
- ids.append(" "+doc.get("id"));
- foundId = true;
- }
- ids.append(")");
-
- if (foundId) {
- // get versions for those ids that don't match
- q = SolrTestCaseJ4.params("q", ids.toString(), "rows", "100000", "fl", "id,_version_",
- "sort", "id asc", "tests",
- "checkShardConsistency(vsControl)/getVers"); // add a tag to aid in
- // debugging via logs
-
- SolrDocumentList a = controlClient.query(q).getResults();
- SolrDocumentList b = cloudClient.query(q).getResults();
-
- log.error("controlClient :" + a + "\n\tcloudClient :" + b);
+ try {
+ // get versions for the mismatched ids
+ boolean foundId = false;
+ StringBuilder ids = new StringBuilder("id:(");
+ for (Map doc : differences) {
+ ids.append(" ").append(doc.get("id"));
+ foundId = true;
+ }
+ ids.append(")");
+
+ if (foundId) {
+ // get versions for those ids that don't match
+ q = SolrTestCaseJ4.params("q", ids.toString(), "rows", "100000", "fl", "id,_version_",
+ "sort", "id asc", "tests",
+ "checkShardConsistency(vsControl)/getVers"); // add a tag to aid in
+ // debugging via logs
+
+ // use POST, the ids in the query above is constructed and could be huge
+ SolrDocumentList a = controlClient.query(q, SolrRequest.METHOD.POST).getResults();
+ SolrDocumentList b = cloudClient.query(q, SolrRequest.METHOD.POST).getResults();
+
+ log.error("controlClient :" + a + "\n\tcloudClient :" + b);
+ }
+ } catch (Exception e) {
+ // swallow any exceptions, this is just useful for producing debug output,
+ // and shouldn't usurp the original issue with mismatches.
+ log.error("Unable to find versions for mismatched ids", e);
}
-
+
return true;
}