You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2017/03/06 11:02:05 UTC
[01/15] lucene-solr:feature/autoscaling: SOLR-10155: For numeric
types facet.contains= and facet.prefix= are now rejected. (Gus Heck,
Christine Poerschke)
Repository: lucene-solr
Updated Branches:
refs/heads/feature/autoscaling da113fde7 -> acb185b2d
SOLR-10155: For numeric types facet.contains= and facet.prefix= are now rejected.
(Gus Heck, Christine Poerschke)
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/43474312
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/43474312
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/43474312
Branch: refs/heads/feature/autoscaling
Commit: 43474312eb2b66df4102bd653b9546e7eff47363
Parents: da113fd
Author: Christine Poerschke <cp...@apache.org>
Authored: Fri Mar 3 12:03:41 2017 +0000
Committer: Christine Poerschke <cp...@apache.org>
Committed: Fri Mar 3 12:03:41 2017 +0000
----------------------------------------------------------------------
solr/CHANGES.txt | 2 ++
.../src/java/org/apache/solr/request/SimpleFacets.java | 10 ++++------
2 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/43474312/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 09912ee..fa4d33b 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -271,6 +271,8 @@ Other Changes
* SOLR-10219: re-enable HDFS tests under JDK9 (hossman, Uwe Schindler)
+* SOLR-10155: For numeric types facet.contains= and facet.prefix= are now rejected.
+ (Gus Heck, Christine Poerschke)
================== 6.4.2 ==================
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/43474312/solr/core/src/java/org/apache/solr/request/SimpleFacets.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/request/SimpleFacets.java b/solr/core/src/java/org/apache/solr/request/SimpleFacets.java
index 4190958..5370dd9 100644
--- a/solr/core/src/java/org/apache/solr/request/SimpleFacets.java
+++ b/solr/core/src/java/org/apache/solr/request/SimpleFacets.java
@@ -484,15 +484,13 @@ public class SimpleFacets {
case FCS:
assert ft.isPointField() || !multiToken;
if (ft.isPointField() || (ft.getNumberType() != null && !sf.multiValued())) {
- // force numeric faceting
- if (prefix != null && !prefix.isEmpty()) {
+ if (prefix != null) {
throw new SolrException(ErrorCode.BAD_REQUEST, FacetParams.FACET_PREFIX + " is not supported on numeric types");
}
if (termFilter != null) {
- final boolean supportedOperation = (termFilter instanceof SubstringBytesRefFilter) && ((SubstringBytesRefFilter) termFilter).substring().isEmpty();
- if (!supportedOperation) {
- throw new SolrException(ErrorCode.BAD_REQUEST, FacetParams.FACET_CONTAINS + " is not supported on numeric types");
- }
+ throw new SolrException(ErrorCode.BAD_REQUEST, "BytesRef term filters ("
+ + FacetParams.FACET_CONTAINS + ", "
+ + FacetParams.FACET_EXCLUDETERMS + ") are not supported on numeric types");
}
// We should do this, but mincount=0 is currently the default
// if (ft.isPointField() && mincount <= 0) {
[03/15] lucene-solr:feature/autoscaling: LUCENE-7410: Fix test bug.
Posted by sh...@apache.org.
LUCENE-7410: Fix test bug.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/fbc844d3
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/fbc844d3
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/fbc844d3
Branch: refs/heads/feature/autoscaling
Commit: fbc844d33439efc1c5c6fee5547715d1a1b0db83
Parents: d947f53
Author: Adrien Grand <jp...@gmail.com>
Authored: Fri Mar 3 17:39:48 2017 +0100
Committer: Adrien Grand <jp...@gmail.com>
Committed: Fri Mar 3 17:41:04 2017 +0100
----------------------------------------------------------------------
.../org/apache/solr/index/TestSlowCompositeReaderWrapper.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fbc844d3/solr/core/src/test/org/apache/solr/index/TestSlowCompositeReaderWrapper.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/index/TestSlowCompositeReaderWrapper.java b/solr/core/src/test/org/apache/solr/index/TestSlowCompositeReaderWrapper.java
index 195aae5..9907d59 100644
--- a/solr/core/src/test/org/apache/solr/index/TestSlowCompositeReaderWrapper.java
+++ b/solr/core/src/test/org/apache/solr/index/TestSlowCompositeReaderWrapper.java
@@ -30,6 +30,7 @@ import org.apache.lucene.index.LeafReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.MultiDocValues.MultiSortedDocValues;
import org.apache.lucene.index.MultiDocValues.MultiSortedSetDocValues;
+import org.apache.lucene.index.NoMergePolicy;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
@@ -95,7 +96,7 @@ public class TestSlowCompositeReaderWrapper extends LuceneTestCase {
public void testOrdMapsAreCached() throws Exception {
Directory dir = newDirectory();
- RandomIndexWriter w = new RandomIndexWriter(random(), dir);
+ RandomIndexWriter w = new RandomIndexWriter(random(), dir, newIndexWriterConfig().setMergePolicy(NoMergePolicy.INSTANCE));
Document doc = new Document();
doc.add(new SortedDocValuesField("sorted", new BytesRef("a")));
doc.add(new SortedSetDocValuesField("sorted_set", new BytesRef("b")));
[10/15] lucene-solr:feature/autoscaling: SOLR-10088: Installer script
does not put zoo.cfg in SOLR_HOME
Posted by sh...@apache.org.
SOLR-10088: Installer script does not put zoo.cfg in SOLR_HOME
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/59433bb4
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/59433bb4
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/59433bb4
Branch: refs/heads/feature/autoscaling
Commit: 59433bb460c2e55756cb3cea2aecd264e48e3b3a
Parents: 5ccc8e7
Author: Jan H�ydahl <ja...@apache.org>
Authored: Sat Mar 4 23:19:06 2017 +0100
Committer: Jan H�ydahl <ja...@apache.org>
Committed: Sat Mar 4 23:19:06 2017 +0100
----------------------------------------------------------------------
solr/CHANGES.txt | 18 ++++++++++--------
solr/bin/install_solr_service.sh | 2 +-
2 files changed, 11 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/59433bb4/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 2ffcc46..ea56cbb 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -128,7 +128,7 @@ New Features
numeric, and conditional evaluators. BooleanOperations have been removed in preference of
BooleanEvaluators. (Dennis Gove)
-* SOLR-9903: Stop interrupting the update executor on shutdown, it can cause graceful shutdowns to put replicas into Leader
+* SOLR-9903: Stop interrupting the update executor on shutdown, it can cause graceful shutdowns to put replicas into Leader
Initiated Recovery among other undesirable things. (Mark Miller)
* SOLR-8396: Add support for PointFields in Solr (Ishan Chattopadhyaya, Tom�s Fern�ndez L�bbe)
@@ -203,6 +203,8 @@ Bug Fixes
* SOLR-10225: Fix HDFS BlockCache evictions metric to not count explicit removal
due to a directory close. (yonik)
+* SOLR-10088: Installer script does not put zoo.cfg in SOLR_HOME (janhoy)
+
Optimizations
----------------------
@@ -232,9 +234,9 @@ Other Changes
* SOLR-10018: Increase the default hl.maxAnalyzedChars to 51200 for the Unified & Postings Highlighter so that all
highlighters now have this same default. (David Smiley)
-
-* SOLR-6246: Added tests to check that the changes in LUCENE-7564 and LUCENE-7670
- enable AnalyzingInfixSuggester and BlendedInfixSuggester to play nicely with core reload.
+
+* SOLR-6246: Added tests to check that the changes in LUCENE-7564 and LUCENE-7670
+ enable AnalyzingInfixSuggester and BlendedInfixSuggester to play nicely with core reload.
SolrSuggester.build() now throws SolrCoreState.CoreIsClosedException when interrupted
by a core reload/shutdown. (Steve Rowe)
@@ -261,8 +263,8 @@ Other Changes
* SOLR-9842: UpdateRequestProcessors have no way to guarantee the closing of resources used for a request.
(Mark Miller)
-* SOLR-9848: Lower solr.cloud.wait-for-updates-with-stale-state-pause back down from 7 seconds.
- (Mark Miller)
+* SOLR-9848: Lower solr.cloud.wait-for-updates-with-stale-state-pause back down from 7 seconds.
+ (Mark Miller)
* SOLR-10020: Cannot reload a core if it fails initialization. (Mike Drob via Erick Erickson)
@@ -273,8 +275,8 @@ Other Changes
* SOLR-10214: Remove unused HDFS BlockCache metrics and add storeFails, as well as adding total
counts for lookups, hits, and evictions. (yonik)
-
-* SOLR-10134: EmbeddedSolrServer responds on Schema API requests (Robert Alexandersson via Mikhail Khludnev)
+
+* SOLR-10134: EmbeddedSolrServer responds on Schema API requests (Robert Alexandersson via Mikhail Khludnev)
* SOLR-10219: re-enable HDFS tests under JDK9 (hossman, Uwe Schindler)
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/59433bb4/solr/bin/install_solr_service.sh
----------------------------------------------------------------------
diff --git a/solr/bin/install_solr_service.sh b/solr/bin/install_solr_service.sh
index b331870..f42dd5a 100755
--- a/solr/bin/install_solr_service.sh
+++ b/solr/bin/install_solr_service.sh
@@ -340,7 +340,7 @@ mkdir -p "$SOLR_VAR_DIR/logs"
if [ -f "$SOLR_VAR_DIR/data/solr.xml" ]; then
echo -e "\n$SOLR_VAR_DIR/data/solr.xml already exists. Skipping install ...\n"
else
- cp "$SOLR_INSTALL_DIR/server/solr/solr.xml" "$SOLR_VAR_DIR/data/solr.xml"
+ cp "$SOLR_INSTALL_DIR/server/solr/"{solr.xml,zoo.cfg} "$SOLR_VAR_DIR/data/"
fi
if [ -f "$SOLR_VAR_DIR/log4j.properties" ]; then
echo -e "\n$SOLR_VAR_DIR/log4j.properties already exists. Skipping install ...\n"
[13/15] lucene-solr:feature/autoscaling: SOLR-10146: fixing tabs
Posted by sh...@apache.org.
SOLR-10146: fixing tabs
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/f49bd79e
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/f49bd79e
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/f49bd79e
Branch: refs/heads/feature/autoscaling
Commit: f49bd79ec14f58361320a0931a936840cb15df86
Parents: 686fbd3
Author: Mikhail Khludnev <mk...@apache.org>
Authored: Sun Mar 5 12:30:36 2017 +0300
Committer: Mikhail Khludnev <mk...@apache.org>
Committed: Sun Mar 5 12:30:36 2017 +0300
----------------------------------------------------------------------
solr/webapp/web/partials/collections.html | 28 +++++++++++++-------------
1 file changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f49bd79e/solr/webapp/web/partials/collections.html
----------------------------------------------------------------------
diff --git a/solr/webapp/web/partials/collections.html b/solr/webapp/web/partials/collections.html
index 2ac12de..f958e14 100644
--- a/solr/webapp/web/partials/collections.html
+++ b/solr/webapp/web/partials/collections.html
@@ -216,22 +216,22 @@ limitations under the License.
<div class="block" id="shard-data">
<div class="content shard" ng-repeat="shard in collection.shards">
<a ng-click="toggleShard(shard)">
- <h2>
- <span ng-class="{open:shard.show}"><b>Shard: {{shard.name}}</b></span>
- <div style="float:right" ng-show="!shard.range || shard.state == 'inactive'"><a ng-click="toggleRemoveShard(shard)"><span class="rem"></span></a></div>
- </h2>
+ <h2>
+ <span ng-class="{open:shard.show}"><b>Shard: {{shard.name}}</b></span>
+ <div style="float:right" ng-show="!shard.range || shard.state == 'inactive'"><a ng-click="toggleRemoveShard(shard)"><span class="rem"></span></a></div>
+ </h2>
</a>
<ul ng-show="shard.showRemove">
- <li>
- <form class="delete-shard">
- <p class="clearfix"><em>Are you sure you want to delete this shard?</em></p>
- <p class="clearfix buttons">
- <button class="submit" ng-class="{success: shard.deleted}" ng-click="deleteShard(shard)"><span>Delete Shard</span></button>
- <button type="reset" class="reset" ng-click="toggleRemoveShard(shard)"><span>Cancel</span></button>
- </p>
- </form>
- </li>
- </ul>
+ <li>
+ <form class="delete-shard">
+ <p class="clearfix"><em>Are you sure you want to delete this shard?</em></p>
+ <p class="clearfix buttons">
+ <button class="submit" ng-class="{success: shard.deleted}" ng-click="deleteShard(shard)"><span>Delete Shard</span></button>
+ <button type="reset" class="reset" ng-click="toggleRemoveShard(shard)"><span>Cancel</span></button>
+ </p>
+ </form>
+ </li>
+ </ul>
<ul ng-show="shard.show">
<li>
<ul>
[12/15] lucene-solr:feature/autoscaling: SOLR-10171: Add Constant
Reduction Rules to Calcite Planner
Posted by sh...@apache.org.
SOLR-10171: Add Constant Reduction Rules to Calcite Planner
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/686fbd3b
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/686fbd3b
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/686fbd3b
Branch: refs/heads/feature/autoscaling
Commit: 686fbd3ba294e7a71f08b2821b5c3ce50235c78b
Parents: b2dcb47
Author: Kevin Risden <kr...@apache.org>
Authored: Sun Feb 19 21:34:40 2017 -0600
Committer: Kevin Risden <kr...@apache.org>
Committed: Sat Mar 4 19:22:34 2017 -0600
----------------------------------------------------------------------
solr/CHANGES.txt | 2 ++
.../org/apache/solr/handler/sql/SolrRules.java | 14 ++++++++++++++
.../apache/solr/handler/sql/SolrTableScan.java | 4 ++++
.../org/apache/solr/handler/TestSQLHandler.java | 8 ++++++++
.../solr/client/solrj/io/sql/JdbcTest.java | 19 +++++++++++++++++++
5 files changed, 47 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/686fbd3b/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index bb5a784..5b7eac5 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -285,6 +285,8 @@ Other Changes
* SOLR-10155: For numeric types facet.contains= and facet.prefix= are now rejected.
(Gus Heck, Christine Poerschke)
+* SOLR-10171 Add Constant Reduction Rules to Calcite Planner (Kevin Risden)
+
================== 6.4.2 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/686fbd3b/solr/core/src/java/org/apache/solr/handler/sql/SolrRules.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrRules.java b/solr/core/src/java/org/apache/solr/handler/sql/SolrRules.java
index 4cbadda..bbc4eb7 100644
--- a/solr/core/src/java/org/apache/solr/handler/sql/SolrRules.java
+++ b/solr/core/src/java/org/apache/solr/handler/sql/SolrRules.java
@@ -26,6 +26,9 @@ import org.apache.calcite.rel.logical.LogicalAggregate;
import org.apache.calcite.rel.logical.LogicalFilter;
import org.apache.calcite.rel.logical.LogicalProject;
import org.apache.calcite.rel.logical.LogicalSort;
+import org.apache.calcite.rel.rules.AggregateValuesRule;
+import org.apache.calcite.rel.rules.ReduceExpressionsRule;
+import org.apache.calcite.rel.rules.ValuesReduceRule;
import org.apache.calcite.rel.type.RelDataType;
import org.apache.calcite.rex.RexCall;
import org.apache.calcite.rex.RexInputRef;
@@ -52,6 +55,17 @@ class SolrRules {
SolrAggregateRule.AGGREGATE_RULE,
};
+ static final RelOptRule[] CONSTANT_REDUCTION_RULES = {
+ ReduceExpressionsRule.PROJECT_INSTANCE,
+ ReduceExpressionsRule.FILTER_INSTANCE,
+ ReduceExpressionsRule.CALC_INSTANCE,
+ ReduceExpressionsRule.JOIN_INSTANCE,
+ ValuesReduceRule.FILTER_INSTANCE,
+ ValuesReduceRule.PROJECT_FILTER_INSTANCE,
+ ValuesReduceRule.PROJECT_INSTANCE,
+ AggregateValuesRule.INSTANCE
+ };
+
static List<String> solrFieldNames(final RelDataType rowType) {
return SqlValidatorUtil.uniquify(
new AbstractList<String>() {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/686fbd3b/solr/core/src/java/org/apache/solr/handler/sql/SolrTableScan.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrTableScan.java b/solr/core/src/java/org/apache/solr/handler/sql/SolrTableScan.java
index 88c53ac..5363d59 100644
--- a/solr/core/src/java/org/apache/solr/handler/sql/SolrTableScan.java
+++ b/solr/core/src/java/org/apache/solr/handler/sql/SolrTableScan.java
@@ -72,6 +72,10 @@ class SolrTableScan extends TableScan implements SolrRel {
for (RelOptRule rule : SolrRules.RULES) {
planner.addRule(rule);
}
+
+ for (RelOptRule rule : SolrRules.CONSTANT_REDUCTION_RULES) {
+ planner.addRule(rule);
+ }
}
public void implement(Implementor implementor) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/686fbd3b/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java b/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
index 35f7ad0..d724fbd 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
@@ -317,6 +317,14 @@ public class TestSQLHandler extends AbstractFullDistribZkTestBase {
assert(tuple.getLong("myInt") == 7);
assert(tuple.get("myString").equals("a"));
+ // SOLR-8845 - Test to make sure that 1 = 0 works for things like Spark SQL
+ sParams = mapParams(CommonParams.QT, "/sql",
+ "stmt", "select id, field_i, str_s from collection1 where 1 = 0");
+
+ solrStream = new SolrStream(jetty.url, sParams);
+ tuples = getTuples(solrStream);
+
+ assertEquals(0, tuples.size());
} finally {
delete();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/686fbd3b/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java
index 927856a..ce14907 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/sql/JdbcTest.java
@@ -450,6 +450,25 @@ public class JdbcTest extends SolrCloudTestCase {
}
@Test
+ public void testOneEqualZeroMetadata() throws Exception {
+ // SOLR-8845 - Make sure that 1 = 1 (literal comparison literal) works
+ try (Connection con = DriverManager.getConnection("jdbc:solr://" + zkHost +
+ "?collection=" + COLLECTIONORALIAS)) {
+
+ try (Statement stmt = con.createStatement()) {
+ try (ResultSet rs = stmt.executeQuery("select a_s from " + COLLECTIONORALIAS + " where 1 = 0")) {
+ assertFalse(rs.next());
+
+ ResultSetMetaData resultSetMetaData = rs.getMetaData();
+ assertNotNull(resultSetMetaData);
+ assertEquals(1, resultSetMetaData.getColumnCount());
+ assertEquals("a_s", resultSetMetaData.getColumnName(1));
+ }
+ }
+ }
+ }
+
+ @Test
public void testDriverMetadata() throws Exception {
String collection = COLLECTIONORALIAS;
[06/15] lucene-solr:feature/autoscaling: LUCENE-6819: Make
ExtractingRequestHandlerTest not rely on index-time boosts.
Posted by sh...@apache.org.
LUCENE-6819: Make ExtractingRequestHandlerTest not rely on index-time boosts.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/7453f78b
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/7453f78b
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/7453f78b
Branch: refs/heads/feature/autoscaling
Commit: 7453f78b3539c7f4f5fa6e5324b251467ca50644
Parents: efbabf8
Author: Adrien Grand <jp...@gmail.com>
Authored: Fri Mar 3 21:43:50 2017 +0100
Committer: Adrien Grand <jp...@gmail.com>
Committed: Fri Mar 3 21:43:50 2017 +0100
----------------------------------------------------------------------
.../solr/handler/extraction/ExtractingRequestHandlerTest.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7453f78b/solr/contrib/extraction/src/test/org/apache/solr/handler/extraction/ExtractingRequestHandlerTest.java
----------------------------------------------------------------------
diff --git a/solr/contrib/extraction/src/test/org/apache/solr/handler/extraction/ExtractingRequestHandlerTest.java b/solr/contrib/extraction/src/test/org/apache/solr/handler/extraction/ExtractingRequestHandlerTest.java
index a53bcd9..dc84b51 100644
--- a/solr/contrib/extraction/src/test/org/apache/solr/handler/extraction/ExtractingRequestHandlerTest.java
+++ b/solr/contrib/extraction/src/test/org/apache/solr/handler/extraction/ExtractingRequestHandlerTest.java
@@ -113,7 +113,7 @@ public class ExtractingRequestHandlerTest extends SolrTestCaseJ4 {
assertQ(req("+id:simple2 +t_content:serif"), "//*[@numFound='0']"); // make sure <style> content is excluded
assertQ(req("+id:simple2 +t_content:blur"), "//*[@numFound='0']"); // make sure <script> content is excluded
- // load again in the exact same way, but boost one field
+ // make sure the fact there is an index-time boost does not fail the parsing
loadLocal("extraction/simple.html",
"literal.id","simple3",
"uprefix", "t_",
@@ -125,7 +125,7 @@ public class ExtractingRequestHandlerTest extends SolrTestCaseJ4 {
);
assertQ(req("t_href:http"), "//*[@numFound='2']");
- assertQ(req("t_href:http"), "//doc[1]/str[.='simple3']");
+ assertQ(req("t_href:http"), "//doc[2]/str[.='simple3']");
assertQ(req("+id:simple3 +t_content_type:[* TO *]"), "//*[@numFound='1']");//test lowercase and then uprefix
loadLocal("extraction/version_control.xml", "fmap.created", "extractedDate", "fmap.producer", "extractedProducer",
[11/15] lucene-solr:feature/autoscaling: SOLR-10146: Added button to
the Admin UI 'Collection' tab for deleting an inactive shard
Posted by sh...@apache.org.
SOLR-10146: Added button to the Admin UI 'Collection' tab for deleting an inactive shard
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/b2dcb47e
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/b2dcb47e
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/b2dcb47e
Branch: refs/heads/feature/autoscaling
Commit: b2dcb47ef44a814c670b5cf2a53c0d6c52810d84
Parents: 59433bb
Author: Jan H�ydahl <ja...@apache.org>
Authored: Sun Mar 5 00:04:49 2017 +0100
Committer: Jan H�ydahl <ja...@apache.org>
Committed: Sun Mar 5 00:04:49 2017 +0100
----------------------------------------------------------------------
solr/CHANGES.txt | 2 ++
solr/webapp/web/css/angular/collections.css | 17 +++++++++++++++++
.../web/js/angular/controllers/collections.js | 14 ++++++++++++++
solr/webapp/web/js/angular/services.js | 1 +
solr/webapp/web/partials/collections.html | 18 +++++++++++++++++-
5 files changed, 51 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b2dcb47e/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index ea56cbb..bb5a784 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -149,6 +149,8 @@ New Features
* SOLR-8593: Integrate Apache Calcite into the SQLHandler (Kevin Risden, Cao Manh Dat, Joel Bernstein)
+* SOLR-10146: Added button to the Admin UI 'Collection' tab for deleting an inactive shard (Amrit Sarkar, janhoy)
+
Bug Fixes
----------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b2dcb47e/solr/webapp/web/css/angular/collections.css
----------------------------------------------------------------------
diff --git a/solr/webapp/web/css/angular/collections.css b/solr/webapp/web/css/angular/collections.css
index 7c2e0a6..e4b61bc 100644
--- a/solr/webapp/web/css/angular/collections.css
+++ b/solr/webapp/web/css/angular/collections.css
@@ -311,6 +311,14 @@ limitations under the License.
right:10px;
}
+#content #collections .shard h2 span.rem {
+ background-image: url( ../../img/ico/cross.png );
+ background-position: 100% 50%;
+ cursor: pointer;
+ padding-right: 21px;
+ right:10px;
+}
+
#content #collections .replica h2 span .open {
background-image: url( ../../img/ico/chevron-small.png );
}
@@ -337,6 +345,15 @@ limitations under the License.
background-image: url( ../../img/ico/tick.png );
}
+#content #collections .delete-shard span
+{
+ background-image: url( ../../img/ico/cross.png );
+}
+#content #collections .delete-shard button.submit span
+{
+ background-image: url( ../../img/ico/tick.png );
+}
+
#content #collections #node-name .chosen-container
{
width: 100% !important;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b2dcb47e/solr/webapp/web/js/angular/controllers/collections.js
----------------------------------------------------------------------
diff --git a/solr/webapp/web/js/angular/controllers/collections.js b/solr/webapp/web/js/angular/controllers/collections.js
index 2bd6ab6..22c5e7f 100644
--- a/solr/webapp/web/js/angular/controllers/collections.js
+++ b/solr/webapp/web/js/angular/controllers/collections.js
@@ -210,6 +210,20 @@ solrAdminApp.controller('CollectionsController',
$scope.hideAll();
replica.showRemove = !replica.showRemove;
};
+
+ $scope.toggleRemoveShard = function(shard) {
+ $scope.hideAll();
+ shard.showRemove = !shard.showRemove;
+ };
+
+ $scope.deleteShard = function(shard) {
+ Collections.deleteShard({collection: shard.collection, shard:shard.name}, function(data) {
+ shard.deleted = true;
+ $timeout(function() {
+ $scope.refresh();
+ }, 2000);
+ });
+ }
$scope.deleteReplica = function(replica) {
Collections.deleteReplica({collection: replica.collection, shard:replica.shard, replica:replica.name}, function(data) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b2dcb47e/solr/webapp/web/js/angular/services.js
----------------------------------------------------------------------
diff --git a/solr/webapp/web/js/angular/services.js b/solr/webapp/web/js/angular/services.js
index 07043c3..a1df37e 100644
--- a/solr/webapp/web/js/angular/services.js
+++ b/solr/webapp/web/js/angular/services.js
@@ -34,6 +34,7 @@ solrAdminServices.factory('System',
"deleteAlias": {params:{action: "DELETEALIAS"}},
"deleteReplica": {params:{action: "DELETEREPLICA"}},
"addReplica": {params:{action: "ADDREPLICA"}},
+ "deleteShard": {params:{action: "DELETESHARD"}},
"reload": {method: "GET", params:{action:"RELOAD", core: "@core"}},
"optimize": {params:{}}
});
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b2dcb47e/solr/webapp/web/partials/collections.html
----------------------------------------------------------------------
diff --git a/solr/webapp/web/partials/collections.html b/solr/webapp/web/partials/collections.html
index 9797b90..2ac12de 100644
--- a/solr/webapp/web/partials/collections.html
+++ b/solr/webapp/web/partials/collections.html
@@ -215,7 +215,23 @@ limitations under the License.
<div class="block" id="shard-data">
<div class="content shard" ng-repeat="shard in collection.shards">
- <a ng-click="toggleShard(shard)"><h2><span ng-class="{open:shard.show}">Shard: {{shard.name}}</span></h2></a>
+ <a ng-click="toggleShard(shard)">
+ <h2>
+ <span ng-class="{open:shard.show}"><b>Shard: {{shard.name}}</b></span>
+ <div style="float:right" ng-show="!shard.range || shard.state == 'inactive'"><a ng-click="toggleRemoveShard(shard)"><span class="rem"></span></a></div>
+ </h2>
+ </a>
+ <ul ng-show="shard.showRemove">
+ <li>
+ <form class="delete-shard">
+ <p class="clearfix"><em>Are you sure you want to delete this shard?</em></p>
+ <p class="clearfix buttons">
+ <button class="submit" ng-class="{success: shard.deleted}" ng-click="deleteShard(shard)"><span>Delete Shard</span></button>
+ <button type="reset" class="reset" ng-click="toggleRemoveShard(shard)"><span>Cancel</span></button>
+ </p>
+ </form>
+ </li>
+ </ul>
<ul ng-show="shard.show">
<li>
<ul>
[02/15] lucene-solr:feature/autoscaling: LUCENE-7731: fix typo in
search/package-summary.html#scoring javadocs. (chillon.m via Christine
Poerschke)
Posted by sh...@apache.org.
LUCENE-7731: fix typo in search/package-summary.html#scoring javadocs. (chillon.m via Christine Poerschke)
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/d947f53e
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/d947f53e
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/d947f53e
Branch: refs/heads/feature/autoscaling
Commit: d947f53ef0de8c0b5fef2757f1f6c8d0874df8a4
Parents: 4347431
Author: Christine Poerschke <cp...@apache.org>
Authored: Fri Mar 3 13:13:26 2017 +0000
Committer: Christine Poerschke <cp...@apache.org>
Committed: Fri Mar 3 13:13:26 2017 +0000
----------------------------------------------------------------------
lucene/core/src/java/org/apache/lucene/search/package-info.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d947f53e/lucene/core/src/java/org/apache/lucene/search/package-info.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/package-info.java b/lucene/core/src/java/org/apache/lucene/search/package-info.java
index c9d8e26..2201be0 100644
--- a/lucene/core/src/java/org/apache/lucene/search/package-info.java
+++ b/lucene/core/src/java/org/apache/lucene/search/package-info.java
@@ -226,7 +226,7 @@
* <a href="http://en.wikipedia.org/wiki/Information_retrieval#Model_types">models</a>, including:
* <ul>
* <li><a href="http://en.wikipedia.org/wiki/Vector_Space_Model">Vector Space Model (VSM)</a></li>
- * <li><a href="http://en.wikipedia.org/wiki/Probabilistic_relevance_model">Probablistic Models</a> such as
+ * <li><a href="http://en.wikipedia.org/wiki/Probabilistic_relevance_model">Probabilistic Models</a> such as
* <a href="http://en.wikipedia.org/wiki/Probabilistic_relevance_model_(BM25)">Okapi BM25</a> and
* <a href="http://en.wikipedia.org/wiki/Divergence-from-randomness_model">DFR</a></li>
* <li><a href="http://en.wikipedia.org/wiki/Language_model">Language models</a></li>
[14/15] lucene-solr:feature/autoscaling: SOLR-10230: default TTL of
PKIAuthenticationPlugin increased to 10secs
Posted by sh...@apache.org.
SOLR-10230: default TTL of PKIAuthenticationPlugin increased to 10secs
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/fb1d2d1a
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/fb1d2d1a
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/fb1d2d1a
Branch: refs/heads/feature/autoscaling
Commit: fb1d2d1ae21f04be355637cfc3b096b090583378
Parents: f49bd79
Author: Noble Paul <no...@apache.org>
Authored: Mon Mar 6 10:09:01 2017 +1030
Committer: Noble Paul <no...@apache.org>
Committed: Mon Mar 6 10:09:01 2017 +1030
----------------------------------------------------------------------
solr/CHANGES.txt | 4 +++-
.../java/org/apache/solr/security/PKIAuthenticationPlugin.java | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb1d2d1a/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 5b7eac5..0b05749 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -285,7 +285,9 @@ Other Changes
* SOLR-10155: For numeric types facet.contains= and facet.prefix= are now rejected.
(Gus Heck, Christine Poerschke)
-* SOLR-10171 Add Constant Reduction Rules to Calcite Planner (Kevin Risden)
+* SOLR-10171: Add Constant Reduction Rules to Calcite Planner (Kevin Risden)
+
+* SOLR-10230: default TTL of PKIAuthenticationPlugin increased to 10secs (noble)
================== 6.4.2 ==================
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb1d2d1a/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java b/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java
index fdd4408..fcc0560 100644
--- a/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java
+++ b/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java
@@ -63,7 +63,7 @@ public class PKIAuthenticationPlugin extends AuthenticationPlugin implements Htt
private final Map<String, PublicKey> keyCache = new ConcurrentHashMap<>();
private final CryptoKeys.RSAKeyPair keyPair = new CryptoKeys.RSAKeyPair();
private final CoreContainer cores;
- private final int MAX_VALIDITY = Integer.parseInt(System.getProperty("pkiauth.ttl", "5000"));
+ private final int MAX_VALIDITY = Integer.parseInt(System.getProperty("pkiauth.ttl", "10000"));
private final String myNodeName;
private final HttpHeaderClientInterceptor interceptor = new HttpHeaderClientInterceptor();
private boolean interceptorRegistered = false;
[15/15] lucene-solr:feature/autoscaling: SOLR-9999: Instrument
DirectUpdateHandler2.
Posted by sh...@apache.org.
SOLR-9999: Instrument DirectUpdateHandler2.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/acb185b2
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/acb185b2
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/acb185b2
Branch: refs/heads/feature/autoscaling
Commit: acb185b2dc7522e6a4fa55d54e82910736668f8d
Parents: fb1d2d1
Author: Andrzej Bialecki <ab...@apache.org>
Authored: Mon Mar 6 11:09:59 2017 +0100
Committer: Andrzej Bialecki <ab...@apache.org>
Committed: Mon Mar 6 11:10:43 2017 +0100
----------------------------------------------------------------------
solr/CHANGES.txt | 3 +
.../src/java/org/apache/solr/core/SolrCore.java | 3 +
.../solr/update/DirectUpdateHandler2.java | 128 +++++++++++++------
.../solr/update/DirectUpdateHandlerTest.java | 108 +++++++++++++---
4 files changed, 185 insertions(+), 57 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acb185b2/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 0b05749..4cfcb72 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -151,6 +151,9 @@ New Features
* SOLR-10146: Added button to the Admin UI 'Collection' tab for deleting an inactive shard (Amrit Sarkar, janhoy)
+* SOLR-9999: Instrument DirectUpdateHandler2. This registers existing statistics under metrics API and adds
+ more metrics to track the rates of update and delete commands. (ab)
+
Bug Fixes
----------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acb185b2/solr/core/src/java/org/apache/solr/core/SolrCore.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java
index 1c30e4c..f22c472 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrCore.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java
@@ -1072,6 +1072,9 @@ public final class SolrCore implements SolrInfoMBean, Closeable {
} else {
newUpdateHandler = createUpdateHandler(updateHandlerClass, updateHandler);
}
+ if (newUpdateHandler instanceof SolrMetricProducer) {
+ coreMetricManager.registerMetricProducer("updateHandler", (SolrMetricProducer)newUpdateHandler);
+ }
infoRegistry.put("updateHandler", newUpdateHandler);
return newUpdateHandler;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acb185b2/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
index ebff564..4592bcf 100644
--- a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
+++ b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
@@ -26,6 +26,8 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.atomic.LongAdder;
+import com.codahale.metrics.Gauge;
+import com.codahale.metrics.Meter;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.CodecReader;
@@ -49,6 +51,8 @@ import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.core.SolrConfig.UpdateHandlerInfo;
import org.apache.solr.core.SolrCore;
+import org.apache.solr.metrics.SolrMetricManager;
+import org.apache.solr.metrics.SolrMetricProducer;
import org.apache.solr.request.LocalSolrQueryRequest;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.request.SolrRequestInfo;
@@ -71,24 +75,25 @@ import org.slf4j.LoggerFactory;
* <p>
* TODO: add soft commitWithin support
*/
-public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState.IndexWriterCloser {
+public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState.IndexWriterCloser, SolrMetricProducer {
protected final SolrCoreState solrCoreState;
// stats
LongAdder addCommands = new LongAdder();
- LongAdder addCommandsCumulative = new LongAdder();
+ Meter addCommandsCumulative;
LongAdder deleteByIdCommands= new LongAdder();
- LongAdder deleteByIdCommandsCumulative= new LongAdder();
- LongAdder deleteByQueryCommands= new LongAdder();
- LongAdder deleteByQueryCommandsCumulative= new LongAdder();
- LongAdder expungeDeleteCommands = new LongAdder();
- LongAdder mergeIndexesCommands = new LongAdder();
- LongAdder commitCommands= new LongAdder();
- LongAdder optimizeCommands= new LongAdder();
- LongAdder rollbackCommands= new LongAdder();
- LongAdder numDocsPending= new LongAdder();
+ Meter deleteByIdCommandsCumulative;
+ LongAdder deleteByQueryCommands = new LongAdder();
+ Meter deleteByQueryCommandsCumulative;
+ Meter expungeDeleteCommands;
+ Meter mergeIndexesCommands;
+ Meter commitCommands;
+ Meter splitCommands;
+ Meter optimizeCommands;
+ Meter rollbackCommands;
+ LongAdder numDocsPending = new LongAdder();
LongAdder numErrors = new LongAdder();
- LongAdder numErrorsCumulative = new LongAdder();
+ Meter numErrorsCumulative;
// tracks when auto-commit should occur
protected final CommitTracker commitTracker;
@@ -146,6 +151,35 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
}
}
+ @Override
+ public void initializeMetrics(SolrMetricManager manager, String registry, String scope) {
+ commitCommands = manager.meter(registry, "commits", getCategory().toString(), scope);
+ Gauge<Integer> autoCommits = () -> commitTracker.getCommitCount();
+ manager.register(registry, autoCommits, true, "autoCommits", getCategory().toString(), scope);
+ Gauge<Integer> softAutoCommits = () -> softCommitTracker.getCommitCount();
+ manager.register(registry, softAutoCommits, true, "softAutoCommits", getCategory().toString(), scope);
+ optimizeCommands = manager.meter(registry, "optimizes", getCategory().toString(), scope);
+ rollbackCommands = manager.meter(registry, "rollbacks", getCategory().toString(), scope);
+ splitCommands = manager.meter(registry, "splits", getCategory().toString(), scope);
+ mergeIndexesCommands = manager.meter(registry, "merges", getCategory().toString(), scope);
+ expungeDeleteCommands = manager.meter(registry, "expungeDeletes", getCategory().toString(), scope);
+ Gauge<Long> docsPending = () -> numDocsPending.longValue();
+ manager.register(registry, docsPending, true, "docsPending", getCategory().toString(), scope);
+ Gauge<Long> adds = () -> addCommands.longValue();
+ manager.register(registry, adds, true, "adds", getCategory().toString(), scope);
+ Gauge<Long> deletesById = () -> deleteByIdCommands.longValue();
+ manager.register(registry, deletesById, true, "deletesById", getCategory().toString(), scope);
+ Gauge<Long> deletesByQuery = () -> deleteByQueryCommands.longValue();
+ manager.register(registry, deletesByQuery, true, "deletesByQuery", getCategory().toString(), scope);
+ Gauge<Long> errors = () -> numErrors.longValue();
+ manager.register(registry, errors, true, "errors", getCategory().toString(), scope);
+
+ addCommandsCumulative = manager.meter(registry, "cumulativeAdds", getCategory().toString(), scope);
+ deleteByIdCommandsCumulative = manager.meter(registry, "cumulativeDeletesById", getCategory().toString(), scope);
+ deleteByQueryCommandsCumulative = manager.meter(registry, "cumulativeDeletesByQuery", getCategory().toString(), scope);
+ numErrorsCumulative = manager.meter(registry, "cumulativeErrors", getCategory().toString(), scope);
+ }
+
private void deleteAll() throws IOException {
log.info(core.getLogId() + "REMOVING ALL DOCUMENTS FROM INDEX");
RefCounted<IndexWriter> iw = solrCoreState.getIndexWriter(core);
@@ -192,7 +226,7 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
int rc = -1;
addCommands.increment();
- addCommandsCumulative.increment();
+ addCommandsCumulative.mark();
// if there is no ID field, don't overwrite
if (idField == null) {
@@ -230,7 +264,7 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
} finally {
if (rc != 1) {
numErrors.increment();
- numErrorsCumulative.increment();
+ numErrorsCumulative.mark();
} else {
numDocsPending.increment();
}
@@ -368,7 +402,7 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
@Override
public void delete(DeleteUpdateCommand cmd) throws IOException {
deleteByIdCommands.increment();
- deleteByIdCommandsCumulative.increment();
+ deleteByIdCommandsCumulative.mark();
Term deleteTerm = new Term(idField.getName(), cmd.getIndexedId());
// SolrCore.verbose("deleteDocuments",deleteTerm,writer);
@@ -426,7 +460,7 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
@Override
public void deleteByQuery(DeleteUpdateCommand cmd) throws IOException {
deleteByQueryCommands.increment();
- deleteByQueryCommandsCumulative.increment();
+ deleteByQueryCommandsCumulative.mark();
boolean madeIt=false;
try {
Query q = getQuery(cmd);
@@ -478,7 +512,7 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
} finally {
if (!madeIt) {
numErrors.increment();
- numErrorsCumulative.increment();
+ numErrorsCumulative.mark();
}
}
}
@@ -486,7 +520,7 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
@Override
public int mergeIndexes(MergeIndexesCommand cmd) throws IOException {
- mergeIndexesCommands.increment();
+ mergeIndexesCommands.mark();
int rc;
log.info("start " + cmd);
@@ -540,7 +574,10 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
error=false;
}
finally {
- if (error) numErrors.increment();
+ if (error) {
+ numErrors.increment();
+ numErrorsCumulative.mark();
+ }
}
}
@@ -552,10 +589,10 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
}
if (cmd.optimize) {
- optimizeCommands.increment();
+ optimizeCommands.mark();
} else {
- commitCommands.increment();
- if (cmd.expungeDeletes) expungeDeleteCommands.increment();
+ commitCommands.mark();
+ if (cmd.expungeDeletes) expungeDeleteCommands.mark();
}
Future[] waitSearcher = null;
@@ -674,7 +711,10 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
addCommands.reset();
deleteByIdCommands.reset();
deleteByQueryCommands.reset();
- if (error) numErrors.increment();
+ if (error) {
+ numErrors.increment();
+ numErrorsCumulative.mark();
+ }
}
// if we are supposed to wait for the searcher to be registered, then we should do it
@@ -702,7 +742,7 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
throw new UnsupportedOperationException("Rollback is currently not supported in SolrCloud mode. (SOLR-4895)");
}
- rollbackCommands.increment();
+ rollbackCommands.mark();
boolean error=true;
@@ -722,10 +762,13 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
error=false;
}
finally {
- addCommandsCumulative.add(-addCommands.sumThenReset());
- deleteByIdCommandsCumulative.add(-deleteByIdCommands.sumThenReset());
- deleteByQueryCommandsCumulative.add(-deleteByQueryCommands.sumThenReset());
- if (error) numErrors.increment();
+ addCommandsCumulative.mark(-addCommands.sumThenReset());
+ deleteByIdCommandsCumulative.mark(-deleteByIdCommands.sumThenReset());
+ deleteByQueryCommandsCumulative.mark(-deleteByQueryCommands.sumThenReset());
+ if (error) {
+ numErrors.increment();
+ numErrorsCumulative.mark();
+ }
}
}
@@ -834,7 +877,13 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
public void split(SplitIndexCommand cmd) throws IOException {
commit(new CommitUpdateCommand(cmd.req, false));
SolrIndexSplitter splitter = new SolrIndexSplitter(cmd);
- splitter.split();
+ splitCommands.mark();
+ try {
+ splitter.split();
+ } catch (IOException e) {
+ numErrors.increment();
+ numErrorsCumulative.mark();
+ }
}
/**
@@ -873,10 +922,10 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
}
private void updateDocument(AddUpdateCommand cmd, IndexWriter writer, Term updateTerm) throws IOException {
- if(cmd.isBlock()){
+ if (cmd.isBlock()) {
log.debug("updateDocuments({})", cmd);
writer.updateDocuments(updateTerm, cmd);
- }else{
+ } else {
Document luceneDocument = cmd.getLuceneDocument(false);
log.debug("updateDocument({})", cmd);
writer.updateDocument(updateTerm, luceneDocument);
@@ -916,7 +965,7 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
@Override
public NamedList getStatistics() {
NamedList lst = new SimpleOrderedMap();
- lst.add("commits", commitCommands.longValue());
+ lst.add("commits", commitCommands.getCount());
if (commitTracker.getDocsUpperBound() > 0) {
lst.add("autocommit maxDocs", commitTracker.getDocsUpperBound());
}
@@ -931,9 +980,9 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
lst.add("soft autocommit maxTime", "" + softCommitTracker.getTimeUpperBound() + "ms");
}
lst.add("soft autocommits", softCommitTracker.getCommitCount());
- lst.add("optimizes", optimizeCommands.longValue());
- lst.add("rollbacks", rollbackCommands.longValue());
- lst.add("expungeDeletes", expungeDeleteCommands.longValue());
+ lst.add("optimizes", optimizeCommands.getCount());
+ lst.add("rollbacks", rollbackCommands.getCount());
+ lst.add("expungeDeletes", expungeDeleteCommands.getCount());
lst.add("docsPending", numDocsPending.longValue());
// pset.size() not synchronized, but it should be fine to access.
// lst.add("deletesPending", pset.size());
@@ -941,10 +990,10 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
lst.add("deletesById", deleteByIdCommands.longValue());
lst.add("deletesByQuery", deleteByQueryCommands.longValue());
lst.add("errors", numErrors.longValue());
- lst.add("cumulative_adds", addCommandsCumulative.longValue());
- lst.add("cumulative_deletesById", deleteByIdCommandsCumulative.longValue());
- lst.add("cumulative_deletesByQuery", deleteByQueryCommandsCumulative.longValue());
- lst.add("cumulative_errors", numErrorsCumulative.longValue());
+ lst.add("cumulative_adds", addCommandsCumulative.getCount());
+ lst.add("cumulative_deletesById", deleteByIdCommandsCumulative.getCount());
+ lst.add("cumulative_deletesByQuery", deleteByQueryCommandsCumulative.getCount());
+ lst.add("cumulative_errors", numErrorsCumulative.getCount());
if (this.ulog != null) {
lst.add("transaction_logs_total_size", ulog.getTotalLogsSize());
lst.add("transaction_logs_total_number", ulog.getTotalLogsNumber());
@@ -971,4 +1020,5 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
public CommitTracker getSoftCommitTracker() {
return softCommitTracker;
}
+
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acb185b2/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java b/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
index ca604fe..2816354 100644
--- a/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
@@ -23,6 +23,9 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
+import com.codahale.metrics.Gauge;
+import com.codahale.metrics.Meter;
+import com.codahale.metrics.Metric;
import org.apache.lucene.index.TieredMergePolicy;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.store.Directory;
@@ -99,7 +102,29 @@ public class DirectUpdateHandlerTest extends SolrTestCaseJ4 {
@Test
public void testBasics() throws Exception {
-
+
+ // get initial metrics
+ Map<String, Metric> metrics = h.getCoreContainer().getMetricManager()
+ .registry(h.getCore().getCoreMetricManager().getRegistryName()).getMetrics();
+
+ String PREFIX = "UPDATE.updateHandler.";
+
+ String commitsName = PREFIX + "commits";
+ assertTrue(metrics.containsKey(commitsName));
+ String addsName = PREFIX + "adds";
+ assertTrue(metrics.containsKey(addsName));
+ String cumulativeAddsName = PREFIX + "cumulativeAdds";
+ String delsIName = PREFIX + "deletesById";
+ String cumulativeDelsIName = PREFIX + "cumulativeDeletesById";
+ String delsQName = PREFIX + "deletesByQuery";
+ String cumulativeDelsQName = PREFIX + "cumulativeDeletesByQuery";
+ long commits = ((Meter) metrics.get(commitsName)).getCount();
+ long adds = ((Gauge<Long>) metrics.get(addsName)).getValue();
+ long cumulativeAdds = ((Meter) metrics.get(cumulativeAddsName)).getCount();
+ long cumulativeDelsI = ((Meter) metrics.get(cumulativeDelsIName)).getCount();
+ long cumulativeDelsQ = ((Meter) metrics.get(cumulativeDelsQName)).getCount();
+
+
assertNull("This test requires a schema that has no version field, " +
"it appears the schema file in use has been edited to violate " +
"this requirement",
@@ -112,8 +137,23 @@ public class DirectUpdateHandlerTest extends SolrTestCaseJ4 {
assertQ(req("q","id:5"), "//*[@numFound='0']");
assertQ(req("q","id:6"), "//*[@numFound='0']");
+ long newAdds = ((Gauge<Long>) metrics.get(addsName)).getValue();
+ long newCumulativeAdds = ((Meter) metrics.get(cumulativeAddsName)).getCount();
+ assertEquals("new adds", 2, newAdds - adds);
+ assertEquals("new cumulative adds", 2, newCumulativeAdds - cumulativeAdds);
+
assertU(commit());
+ long newCommits = ((Meter) metrics.get(commitsName)).getCount();
+ assertEquals("new commits", 1, newCommits - commits);
+
+ newAdds = ((Gauge<Long>) metrics.get(addsName)).getValue();
+ newCumulativeAdds = ((Meter) metrics.get(cumulativeAddsName)).getCount();
+ // adds should be reset to 0 after commit
+ assertEquals("new adds after commit", 0, newAdds);
+ // not so with cumulative ones!
+ assertEquals("new cumulative adds after commit", 2, newCumulativeAdds - cumulativeAdds);
+
// now they should be there
assertQ(req("q","id:5"), "//*[@numFound='1']");
assertQ(req("q","id:6"), "//*[@numFound='1']");
@@ -121,11 +161,21 @@ public class DirectUpdateHandlerTest extends SolrTestCaseJ4 {
// now delete one
assertU(delI("5"));
+ long newDelsI = ((Gauge<Long>) metrics.get(delsIName)).getValue();
+ long newCumulativeDelsI = ((Meter) metrics.get(cumulativeDelsIName)).getCount();
+ assertEquals("new delsI", 1, newDelsI);
+ assertEquals("new cumulative delsI", 1, newCumulativeDelsI - cumulativeDelsI);
+
// not committed yet
assertQ(req("q","id:5"), "//*[@numFound='1']");
assertU(commit());
-
+ // delsI should be reset to 0 after commit
+ newDelsI = ((Gauge<Long>) metrics.get(delsIName)).getValue();
+ newCumulativeDelsI = ((Meter) metrics.get(cumulativeDelsIName)).getCount();
+ assertEquals("new delsI after commit", 0, newDelsI);
+ assertEquals("new cumulative delsI after commit", 1, newCumulativeDelsI - cumulativeDelsI);
+
// 5 should be gone
assertQ(req("q","id:5"), "//*[@numFound='0']");
assertQ(req("q","id:6"), "//*[@numFound='1']");
@@ -133,14 +183,36 @@ public class DirectUpdateHandlerTest extends SolrTestCaseJ4 {
// now delete all
assertU(delQ("*:*"));
+ long newDelsQ = ((Gauge<Long>) metrics.get(delsQName)).getValue();
+ long newCumulativeDelsQ = ((Meter) metrics.get(cumulativeDelsQName)).getCount();
+ assertEquals("new delsQ", 1, newDelsQ);
+ assertEquals("new cumulative delsQ", 1, newCumulativeDelsQ - cumulativeDelsQ);
+
// not committed yet
assertQ(req("q","id:6"), "//*[@numFound='1']");
assertU(commit());
+ newDelsQ = ((Gauge<Long>) metrics.get(delsQName)).getValue();
+ newCumulativeDelsQ = ((Meter) metrics.get(cumulativeDelsQName)).getCount();
+ assertEquals("new delsQ after commit", 0, newDelsQ);
+ assertEquals("new cumulative delsQ after commit", 1, newCumulativeDelsQ - cumulativeDelsQ);
+
// 6 should be gone
assertQ(req("q","id:6"), "//*[@numFound='0']");
+ // verify final metrics
+ newCommits = ((Meter) metrics.get(commitsName)).getCount();
+ assertEquals("new commits", 3, newCommits - commits);
+ newAdds = ((Gauge<Long>) metrics.get(addsName)).getValue();
+ assertEquals("new adds", 0, newAdds);
+ newCumulativeAdds = ((Meter) metrics.get(cumulativeAddsName)).getCount();
+ assertEquals("new cumulative adds", 2, newCumulativeAdds - cumulativeAdds);
+ newDelsI = ((Gauge<Long>) metrics.get(delsIName)).getValue();
+ assertEquals("new delsI", 0, newDelsI);
+ newCumulativeDelsI = ((Meter) metrics.get(cumulativeDelsIName)).getCount();
+ assertEquals("new cumulative delsI", 1, newCumulativeDelsI - cumulativeDelsI);
+
}
@@ -161,12 +233,12 @@ public class DirectUpdateHandlerTest extends SolrTestCaseJ4 {
CommitUpdateCommand cmtCmd = new CommitUpdateCommand(ureq, false);
cmtCmd.waitSearcher = true;
assertEquals( 1, duh2.addCommands.longValue() );
- assertEquals( 1, duh2.addCommandsCumulative.longValue() );
- assertEquals( 0, duh2.commitCommands.longValue() );
+ assertEquals( 1, duh2.addCommandsCumulative.getCount() );
+ assertEquals( 0, duh2.commitCommands.getCount() );
updater.commit(cmtCmd);
assertEquals( 0, duh2.addCommands.longValue() );
- assertEquals( 1, duh2.addCommandsCumulative.longValue() );
- assertEquals( 1, duh2.commitCommands.longValue() );
+ assertEquals( 1, duh2.addCommandsCumulative.getCount() );
+ assertEquals( 1, duh2.commitCommands.getCount() );
ureq.close();
assertU(adoc("id","B"));
@@ -175,12 +247,12 @@ public class DirectUpdateHandlerTest extends SolrTestCaseJ4 {
ureq = req();
RollbackUpdateCommand rbkCmd = new RollbackUpdateCommand(ureq);
assertEquals( 1, duh2.addCommands.longValue() );
- assertEquals( 2, duh2.addCommandsCumulative.longValue() );
- assertEquals( 0, duh2.rollbackCommands.longValue() );
+ assertEquals( 2, duh2.addCommandsCumulative.getCount() );
+ assertEquals( 0, duh2.rollbackCommands.getCount() );
updater.rollback(rbkCmd);
assertEquals( 0, duh2.addCommands.longValue() );
- assertEquals( 1, duh2.addCommandsCumulative.longValue() );
- assertEquals( 1, duh2.rollbackCommands.longValue() );
+ assertEquals( 1, duh2.addCommandsCumulative.getCount() );
+ assertEquals( 1, duh2.rollbackCommands.getCount() );
ureq.close();
// search - "B" should not be found.
@@ -221,12 +293,12 @@ public class DirectUpdateHandlerTest extends SolrTestCaseJ4 {
CommitUpdateCommand cmtCmd = new CommitUpdateCommand(ureq, false);
cmtCmd.waitSearcher = true;
assertEquals( 2, duh2.addCommands.longValue() );
- assertEquals( 2, duh2.addCommandsCumulative.longValue() );
- assertEquals( 0, duh2.commitCommands.longValue() );
+ assertEquals( 2, duh2.addCommandsCumulative.getCount() );
+ assertEquals( 0, duh2.commitCommands.getCount() );
updater.commit(cmtCmd);
assertEquals( 0, duh2.addCommands.longValue() );
- assertEquals( 2, duh2.addCommandsCumulative.longValue() );
- assertEquals( 1, duh2.commitCommands.longValue() );
+ assertEquals( 2, duh2.addCommandsCumulative.getCount() );
+ assertEquals( 1, duh2.commitCommands.getCount() );
ureq.close();
// search - "A","B" should be found.
@@ -254,13 +326,13 @@ public class DirectUpdateHandlerTest extends SolrTestCaseJ4 {
ureq = req();
RollbackUpdateCommand rbkCmd = new RollbackUpdateCommand(ureq);
assertEquals( 1, duh2.deleteByIdCommands.longValue() );
- assertEquals( 1, duh2.deleteByIdCommandsCumulative.longValue() );
- assertEquals( 0, duh2.rollbackCommands.longValue() );
+ assertEquals( 1, duh2.deleteByIdCommandsCumulative.getCount() );
+ assertEquals( 0, duh2.rollbackCommands.getCount() );
updater.rollback(rbkCmd);
ureq.close();
assertEquals( 0, duh2.deleteByIdCommands.longValue() );
- assertEquals( 0, duh2.deleteByIdCommandsCumulative.longValue() );
- assertEquals( 1, duh2.rollbackCommands.longValue() );
+ assertEquals( 0, duh2.deleteByIdCommandsCumulative.getCount() );
+ assertEquals( 1, duh2.rollbackCommands.getCount() );
// search - "B" should be found.
assertQ("\"B\" should be found.", req
[07/15] lucene-solr:feature/autoscaling: SOLR-8593: Update CHANGES.txt
Posted by sh...@apache.org.
SOLR-8593: Update CHANGES.txt
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/5ae51d4d
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/5ae51d4d
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/5ae51d4d
Branch: refs/heads/feature/autoscaling
Commit: 5ae51d4ddf5e1a27b8f1741910a32697f952f482
Parents: 7453f78
Author: Joel Bernstein <jb...@apache.org>
Authored: Fri Mar 3 20:59:36 2017 -0500
Committer: Joel Bernstein <jb...@apache.org>
Committed: Fri Mar 3 20:59:36 2017 -0500
----------------------------------------------------------------------
solr/CHANGES.txt | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5ae51d4d/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 7ea6226..2ffcc46 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -147,6 +147,8 @@ New Features
* SOLR-10156: Add significantTerms Streaming Expression (Joel Bernstein)
+* SOLR-8593: Integrate Apache Calcite into the SQLHandler (Kevin Risden, Cao Manh Dat, Joel Bernstein)
+
Bug Fixes
----------------------
[04/15] lucene-solr:feature/autoscaling: SOLR-10225: fix BlockCache
evictions metric to not count explicit removal
Posted by sh...@apache.org.
SOLR-10225: fix BlockCache evictions metric to not count explicit removal
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/4990eed1
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/4990eed1
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/4990eed1
Branch: refs/heads/feature/autoscaling
Commit: 4990eed1b3aef3fb8bf98fa5427f12a96c029d03
Parents: fbc844d
Author: yonik <yo...@apache.org>
Authored: Fri Mar 3 12:39:33 2017 -0500
Committer: yonik <yo...@apache.org>
Committed: Fri Mar 3 12:39:33 2017 -0500
----------------------------------------------------------------------
solr/CHANGES.txt | 3 +++
.../java/org/apache/solr/store/blockcache/BlockCache.java | 9 ++++++---
2 files changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4990eed1/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index fa4d33b..2659155 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -196,6 +196,9 @@ Bug Fixes
* SOLR-10196: ElectionContext#runLeaderProcess can hit NPE on core close. (Mark Miller)
+* SOLR-10225: Fix HDFS BlockCache evictions metric to not count explicit removal
+ due to a directory close. (yonik)
+
Optimizations
----------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/4990eed1/solr/core/src/java/org/apache/solr/store/blockcache/BlockCache.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/store/blockcache/BlockCache.java b/solr/core/src/java/org/apache/solr/store/blockcache/BlockCache.java
index ad5b2f4..9deef6c 100644
--- a/solr/core/src/java/org/apache/solr/store/blockcache/BlockCache.java
+++ b/solr/core/src/java/org/apache/solr/store/blockcache/BlockCache.java
@@ -23,6 +23,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
+import com.github.benmanes.caffeine.cache.RemovalCause;
import com.github.benmanes.caffeine.cache.RemovalListener;
/**
@@ -75,7 +76,7 @@ public class BlockCache {
lockCounters[i] = new AtomicInteger();
}
- RemovalListener<BlockCacheKey,BlockCacheLocation> listener = (blockCacheKey, blockCacheLocation, removalCause) -> releaseLocation(blockCacheKey, blockCacheLocation);
+ RemovalListener<BlockCacheKey,BlockCacheLocation> listener = (blockCacheKey, blockCacheLocation, removalCause) -> releaseLocation(blockCacheKey, blockCacheLocation, removalCause);
cache = Caffeine.newBuilder()
.removalListener(listener)
@@ -88,7 +89,7 @@ public class BlockCache {
cache.invalidate(key);
}
- private void releaseLocation(BlockCacheKey blockCacheKey, BlockCacheLocation location) {
+ private void releaseLocation(BlockCacheKey blockCacheKey, BlockCacheLocation location, RemovalCause removalCause) {
if (location == null) {
return;
}
@@ -103,7 +104,9 @@ public class BlockCache {
for (OnRelease onRelease : onReleases) {
onRelease.release(blockCacheKey);
}
- metrics.blockCacheEviction.incrementAndGet();
+ if (removalCause.wasEvicted()) {
+ metrics.blockCacheEviction.incrementAndGet();
+ }
metrics.blockCacheSize.decrementAndGet();
}
[09/15] lucene-solr:feature/autoscaling: SOLR-10227 Fix a test
failure.
Posted by sh...@apache.org.
SOLR-10227 Fix a test failure.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/5ccc8e7a
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/5ccc8e7a
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/5ccc8e7a
Branch: refs/heads/feature/autoscaling
Commit: 5ccc8e7ae9419ec8077f6fa6c3a2972edb9e393d
Parents: b66d133
Author: Andrzej Bialecki <ab...@apache.org>
Authored: Sat Mar 4 09:31:26 2017 +0100
Committer: Andrzej Bialecki <ab...@apache.org>
Committed: Sat Mar 4 09:31:26 2017 +0100
----------------------------------------------------------------------
.../src/test/org/apache/solr/metrics/SolrMetricManagerTest.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5ccc8e7a/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java b/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java
index 3813488..ee2acd3 100644
--- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricManagerTest.java
@@ -58,8 +58,8 @@ public class SolrMetricManagerTest extends SolrTestCaseJ4 {
Map<String, Counter> metrics1 = SolrMetricTestUtils.getRandomMetrics(r, true);
Map<String, Counter> metrics2 = SolrMetricTestUtils.getRandomMetrics(r, true);
- String fromName = TestUtil.randomSimpleString(r, 1, 10);
- String toName = TestUtil.randomSimpleString(r, 1, 10);
+ String fromName = "from-" + TestUtil.randomSimpleString(r, 1, 10);
+ String toName = "to-" + TestUtil.randomSimpleString(r, 1, 10);
// register test metrics
for (Map.Entry<String, Counter> entry : metrics1.entrySet()) {
metricManager.register(fromName, entry.getValue(), false, entry.getKey(), "metrics1");
[08/15] lucene-solr:feature/autoscaling: SOLR-9401:
TestPKIAuthenticationPlugin NPE. do the time consuming pub key creation
before header is set
Posted by sh...@apache.org.
SOLR-9401: TestPKIAuthenticationPlugin NPE. do the time consuming pub key creation before header is set
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/b66d1339
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/b66d1339
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/b66d1339
Branch: refs/heads/feature/autoscaling
Commit: b66d13398aef416ec6b64dd5d3e5c00219ae5ce4
Parents: 5ae51d4
Author: Noble Paul <no...@apache.org>
Authored: Sat Mar 4 16:12:57 2017 +1030
Committer: Noble Paul <no...@apache.org>
Committed: Sat Mar 4 16:12:57 2017 +1030
----------------------------------------------------------------------
.../security/TestPKIAuthenticationPlugin.java | 131 +++++++------------
1 file changed, 47 insertions(+), 84 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b66d1339/solr/core/src/test/org/apache/solr/security/TestPKIAuthenticationPlugin.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/security/TestPKIAuthenticationPlugin.java b/solr/core/src/test/org/apache/solr/security/TestPKIAuthenticationPlugin.java
index 4eb0a80..2595277 100644
--- a/solr/core/src/test/org/apache/solr/security/TestPKIAuthenticationPlugin.java
+++ b/solr/core/src/test/org/apache/solr/security/TestPKIAuthenticationPlugin.java
@@ -38,18 +38,10 @@ import org.apache.solr.util.CryptoKeys;
import static org.mockito.Mockito.*;
public class TestPKIAuthenticationPlugin extends SolrTestCaseJ4 {
- HttpServletRequest mockReq;
- FilterChain filterChain;
- final AtomicReference<ServletRequest> wrappedRequestByFilter = new AtomicReference<>();
- final AtomicReference<Header> header = new AtomicReference<>();
- AtomicReference<Principal> principal = new AtomicReference<>();
- BasicHttpRequest request;
-
static class MockPKIAuthenticationPlugin extends PKIAuthenticationPlugin {
SolrRequestInfo solrRequestInfo;
-
Map<String, PublicKey> remoteKeys = new HashMap<>();
public MockPKIAuthenticationPlugin(CoreContainer cores, String node) {
@@ -78,6 +70,7 @@ public class TestPKIAuthenticationPlugin extends SolrTestCaseJ4 {
}
public void test() throws Exception {
+ AtomicReference<Principal> principal = new AtomicReference<>();
String nodeName = "node_x_233";
final MockPKIAuthenticationPlugin mock = new MockPKIAuthenticationPlugin(null, nodeName);
@@ -92,96 +85,66 @@ public class TestPKIAuthenticationPlugin extends SolrTestCaseJ4 {
principal.set(new BasicUserPrincipal("solr"));
mock.solrRequestInfo = new SolrRequestInfo(localSolrQueryRequest, new SolrQueryResponse());
- request = new BasicHttpRequest("GET", "http://localhost:56565");
+ BasicHttpRequest request = new BasicHttpRequest("GET", "http://localhost:56565");
mock.setHeader(request);
+ final AtomicReference<Header> header = new AtomicReference<>();
header.set(request.getFirstHeader(PKIAuthenticationPlugin.HEADER));
assertNotNull(header.get());
assertTrue(header.get().getValue().startsWith(nodeName));
- mockReq = createMockRequest(header);
- filterChain = (servletRequest, servletResponse) -> wrappedRequestByFilter.set(servletRequest);
-
-
- run("solr", () -> {
- mock.doAuthenticate(mockReq, null, filterChain);
- });
+ final AtomicReference<ServletRequest> wrappedRequestByFilter = new AtomicReference<>();
+ HttpServletRequest mockReq = createMockRequest(header);
+ FilterChain filterChain = (servletRequest, servletResponse) -> wrappedRequestByFilter.set(servletRequest);
+ mock.doAuthenticate(mockReq, null, filterChain);
+ assertNotNull(wrappedRequestByFilter.get());
+ assertEquals("solr", ((HttpServletRequest) wrappedRequestByFilter.get()).getUserPrincipal().getName());
//test 2
-
- run(null, () -> {
- principal.set(null); // no user
- header.set(null);
- wrappedRequestByFilter.set(null);//
- request = new BasicHttpRequest("GET", "http://localhost:56565");
- mock.setHeader(request);
- assertNull(request.getFirstHeader(PKIAuthenticationPlugin.HEADER));
- mock.doAuthenticate(mockReq, null, filterChain);
- });
+ principal.set(null); // no user
+ header.set(null);
+ wrappedRequestByFilter.set(null);//
+ request = new BasicHttpRequest("GET", "http://localhost:56565");
+ mock.setHeader(request);
+ assertNull(request.getFirstHeader(PKIAuthenticationPlugin.HEADER));
+ mock.doAuthenticate(mockReq, null, filterChain);
+ assertNotNull(wrappedRequestByFilter.get());
+ assertNull(((HttpServletRequest) wrappedRequestByFilter.get()).getUserPrincipal());
//test 3 . No user request . Request originated from Solr
- run("$", () -> {
- mock.solrRequestInfo = null;
- header.set(null);
- wrappedRequestByFilter.set(null);
- request = new BasicHttpRequest("GET", "http://localhost:56565");
- mock.setHeader(request);
- header.set(request.getFirstHeader(PKIAuthenticationPlugin.HEADER));
- assertNotNull(header.get());
- assertTrue(header.get().getValue().startsWith(nodeName));
- mock.doAuthenticate(mockReq, null, filterChain);
- });
-
- run("$", () -> {
- mock.solrRequestInfo = null;
- header.set(null);
- wrappedRequestByFilter.set(null);
- request = new BasicHttpRequest("GET", "http://localhost:56565");
- mock.setHeader(request);
- header.set(request.getFirstHeader(PKIAuthenticationPlugin.HEADER));
- assertNotNull(header.get());
- assertTrue(header.get().getValue().startsWith(nodeName));
- MockPKIAuthenticationPlugin mock1 = new MockPKIAuthenticationPlugin(null, nodeName) {
- int called = 0;
-
- @Override
- PublicKey getRemotePublicKey(String nodename) {
- try {
- return called == 0 ? new CryptoKeys.RSAKeyPair().getPublicKey() : correctKey;
- } finally {
- called++;
- }
- }
- };
-
- mock1.doAuthenticate(mockReq, null, filterChain);
-
- });
-
- }
+ //create pub key in advance because it can take time and it should be
+ //created before the header is set
+ PublicKey key = new CryptoKeys.RSAKeyPair().getPublicKey();
+ mock.solrRequestInfo = null;
+ header.set(null);
+ wrappedRequestByFilter.set(null);
+ request = new BasicHttpRequest("GET", "http://localhost:56565");
+ mock.setHeader(request);
+ header.set(request.getFirstHeader(PKIAuthenticationPlugin.HEADER));
+ assertNotNull(header.get());
+ assertTrue(header.get().getValue().startsWith(nodeName));
- interface Runnable {
- void run() throws Exception;
- }
+ mock.doAuthenticate(mockReq, null, filterChain);
+ assertNotNull(wrappedRequestByFilter.get());
+ assertEquals("$", ((HttpServletRequest) wrappedRequestByFilter.get()).getUserPrincipal().getName());
- private void run(String expected, Runnable r) throws Exception {
- int failures = 0;
- for (; ; ) {
- r.run();
- if (expected == null) {
- assertTrue(wrappedRequestByFilter.get() == null || ((HttpServletRequest) wrappedRequestByFilter.get()).getUserPrincipal() == null);
- } else {
- assertNotNull(wrappedRequestByFilter.get());
- if (((HttpServletRequest) wrappedRequestByFilter.get()).getUserPrincipal() == null) {
- //may be timed out
- if (++failures < 3) continue;
- else
- fail("No principal obtained");
+ /*test4 mock the restart of a node*/
+ MockPKIAuthenticationPlugin mock1 = new MockPKIAuthenticationPlugin(null, nodeName) {
+ int called = 0;
+ @Override
+ PublicKey getRemotePublicKey(String nodename) {
+ try {
+ return called == 0 ? key : correctKey;
+ } finally {
+ called++;
}
- assertEquals(expected, ((HttpServletRequest) wrappedRequestByFilter.get()).getUserPrincipal().getName());
}
- return;
+ };
+
+ mock1.doAuthenticate(mockReq, null,filterChain );
+ assertNotNull(wrappedRequestByFilter.get());
+ assertEquals("$", ((HttpServletRequest) wrappedRequestByFilter.get()).getUserPrincipal().getName());
+
- }
}
private HttpServletRequest createMockRequest(final AtomicReference<Header> header) {
[05/15] lucene-solr:feature/autoscaling: SOLR-10156: Update
CHANGES.txt
Posted by sh...@apache.org.
SOLR-10156: Update CHANGES.txt
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/efbabf8e
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/efbabf8e
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/efbabf8e
Branch: refs/heads/feature/autoscaling
Commit: efbabf8e2cf770c3dd19fb3faf2e34b8885381ea
Parents: 4990eed
Author: Joel Bernstein <jb...@apache.org>
Authored: Fri Mar 3 15:07:37 2017 -0500
Committer: Joel Bernstein <jb...@apache.org>
Committed: Fri Mar 3 15:07:37 2017 -0500
----------------------------------------------------------------------
solr/CHANGES.txt | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/efbabf8e/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 2659155..7ea6226 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -145,6 +145,8 @@ New Features
* SOLR-10153 & SOLR-10152: The Unified and Postings based highlighters: Add hl.bs.type=SEPARATOR along with new param
hl.bs.separator to break passages by a provided single character. (Amrit Sarkar, David Smiley)
+* SOLR-10156: Add significantTerms Streaming Expression (Joel Bernstein)
+
Bug Fixes
----------------------