You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2021/03/30 23:42:27 UTC
[lucene-solr] branch branch_8x updated: SOLR-15292: An ERROR is
logged if SignatureUpdateProcessorFactory is used in SolrCloud cluster in a
way that is known to be problematic with multiple replicas
This is an automated email from the ASF dual-hosted git repository.
hossman pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/branch_8x by this push:
new eb25c78 SOLR-15292: An ERROR is logged if SignatureUpdateProcessorFactory is used in SolrCloud cluster in a way that is known to be problematic with multiple replicas
eb25c78 is described below
commit eb25c789b5ae73c60f7988e36e2bf84152fb7727
Author: Chris Hostetter <ho...@apache.org>
AuthorDate: Tue Mar 30 15:33:03 2021 -0700
SOLR-15292: An ERROR is logged if SignatureUpdateProcessorFactory is used in SolrCloud cluster in a way that is known to be problematic with multiple replicas
(cherry picked from commit c7ffbf440b0df0cff06bc6691c084fdd7c310841)
---
solr/CHANGES.txt | 4 ++
.../processor/SignatureUpdateProcessorFactory.java | 20 +++++-
.../conf/solrconfig-analytics-query.xml | 32 ---------
.../conf/solrconfig-collapseqparser.xml | 32 ---------
.../conf/solrconfig-dedup-overwrites.xml | 81 ++++++++++++++++++++++
.../solr/collection1/conf/solrconfig-minhash.xml | 32 ---------
.../collection1/conf/solrconfig-plugcollector.xml | 32 ---------
.../solr/collection1/conf/solrconfig-tlog.xml | 24 -------
.../solr/collection1/conf/solrconfig.xml | 32 ---------
.../SignatureUpdateProcessorFactoryTest.java | 43 +++---------
.../processor/TestPartialUpdateDeduplication.java | 2 +-
.../solr/configsets/_default/conf/solrconfig.xml | 1 -
.../conf/solrconfig.xml | 1 -
13 files changed, 114 insertions(+), 222 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index fcc26fa..b53ec5e0 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -79,6 +79,10 @@ Other Changes
---------------------
* SOLR-15118: Deprecate CollectionAdminRequest.getV2Request(). (Jason Gerlowski)
+* SOLR-15292: An ERROR is logged if SignatureUpdateProcessorFactory is used in SolrCloud cluster in a way that is known to
+ be problematic with multiple replicas. In 9.0 this situation will prevent collection initialization. (hossman)
+
+
================== 8.8.1 ==================
Bug Fixes
diff --git a/solr/core/src/java/org/apache/solr/update/processor/SignatureUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/SignatureUpdateProcessorFactory.java
index a6cceae..a899ec7 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/SignatureUpdateProcessorFactory.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/SignatureUpdateProcessorFactory.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.update.processor;
import java.io.IOException;
+import java.lang.invoke.MethodHandles;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -33,15 +34,21 @@ import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.update.AddUpdateCommand;
import org.apache.solr.core.SolrCore;
+import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.SchemaField;
import org.apache.solr.util.plugin.SolrCoreAware;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* @since 3.1
**/
public class SignatureUpdateProcessorFactory
extends UpdateRequestProcessorFactory
implements SolrCoreAware {
+
+ private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
private List<String> sigFields;
private String signatureField;
@@ -77,7 +84,9 @@ public class SignatureUpdateProcessorFactory
@Override
public void inform(SolrCore core) {
- final SchemaField field = core.getLatestSchema().getFieldOrNull(getSignatureField());
+ final IndexSchema schema = core.getLatestSchema();
+ final SchemaField field = schema.getFieldOrNull(getSignatureField());
+
if (null == field) {
throw new SolrException
(ErrorCode.SERVER_ERROR,
@@ -91,6 +100,15 @@ public class SignatureUpdateProcessorFactory
"Can't set overwriteDupes when signatureField is not indexed: "
+ getSignatureField());
}
+
+ if (getOverwriteDupes() && (null != core.getCoreDescriptor().getCloudDescriptor()) ) {
+ // Not Safe, see SOLR-3473 + SOLR-15290
+ if ( ! field.equals(schema.getUniqueKeyField()) ) {
+ // TODO: throw new SolrException(ErrorCode.SERVER_ERROR, ...
+ log.error("Can't use overwriteDupes safely in SolrCloud when signatureField is not the uniqueKeyField: {}",
+ schema.getUniqueKeyField().getName());
+ }
+ }
}
public List<String> getSigFields() {
diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-analytics-query.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-analytics-query.xml
index 9b2b8aa..6c565e5 100644
--- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-analytics-query.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-analytics-query.xml
@@ -233,38 +233,6 @@ based HashBitset. -->
<queryParser name="count" class="org.apache.solr.search.AnalyticsTestQParserPlugin"/>
- <updateRequestProcessorChain name="dedupe">
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">false</bool>
- <bool name="overwriteDupes">true</bool>
- <str name="fields">v_t,t_field</str>
- <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- <updateRequestProcessorChain name="dedupe-allfields">
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">false</bool>
- <bool name="overwriteDupes">false</bool>
- <str name="signatureField">id</str>
- <str name="fields"></str>
- <str name="signatureClass">org.apache.solr.update.processor.Lookup3Signature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- <updateRequestProcessorChain name="stored_sig">
- <!-- this chain is valid even though the signature field is not
- indexed, because we are not asking for dups to be overwritten
- -->
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">true</bool>
- <str name="signatureField">non_indexed_signature_sS</str>
- <bool name="overwriteDupes">false</bool>
- <str name="fields">v_t,t_field</str>
- <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
<updateRequestProcessorChain name="uniq-fields">
<processor class="org.apache.solr.update.processor.UniqFieldsUpdateProcessorFactory">
<arr name="fieldName">
diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-collapseqparser.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-collapseqparser.xml
index 7180f18..a585f6c 100644
--- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-collapseqparser.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-collapseqparser.xml
@@ -235,38 +235,6 @@ based HashBitset. -->
<queryParser name="foo" class="FooQParserPlugin"/>
- <updateRequestProcessorChain name="dedupe">
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">false</bool>
- <bool name="overwriteDupes">true</bool>
- <str name="fields">v_t,t_field</str>
- <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- <updateRequestProcessorChain name="dedupe-allfields">
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">false</bool>
- <bool name="overwriteDupes">false</bool>
- <str name="signatureField">id</str>
- <str name="fields"></str>
- <str name="signatureClass">org.apache.solr.update.processor.Lookup3Signature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- <updateRequestProcessorChain name="stored_sig">
- <!-- this chain is valid even though the signature field is not
- indexed, because we are not asking for dups to be overwritten
- -->
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">true</bool>
- <str name="signatureField">non_indexed_signature_sS</str>
- <bool name="overwriteDupes">false</bool>
- <str name="fields">v_t,t_field</str>
- <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
<updateRequestProcessorChain name="uniq-fields">
<processor class="org.apache.solr.update.processor.UniqFieldsUpdateProcessorFactory">
<arr name="fieldName">
diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-dedup-overwrites.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-dedup-overwrites.xml
new file mode 100644
index 0000000..74b19f4
--- /dev/null
+++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-dedup-overwrites.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" ?>
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<config>
+
+ <updateRequestProcessorChain name="dedupe">
+ <!-- THIS CHAIN IS NOT VALID IN SOLR CLOUD !
+ THIS USE OF THE (DEFAULT) 'signatureField' IS INCOMPATIBLE WITH (DEFAULT) overwriteDupes=true IN SOLR CLOUD
+ -->
+ <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
+ <bool name="overwriteDupes">true</bool>
+ <str name="fields">v_t,t_field</str>
+ <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
+ </processor>
+ <processor class="solr.RunUpdateProcessorFactory" />
+ </updateRequestProcessorChain>
+ <updateRequestProcessorChain name="dedupe-allfields">
+ <!-- this chain is valid, even in cloud, because the signatureField is the unqiueKey field -->
+ <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
+ <bool name="overwriteDupes">false</bool>
+ <str name="signatureField">id</str>
+ <str name="fields"></str>
+ <str name="signatureClass">org.apache.solr.update.processor.Lookup3Signature</str>
+ </processor>
+ <processor class="solr.RunUpdateProcessorFactory" />
+ </updateRequestProcessorChain>
+ <updateRequestProcessorChain name="stored_sig">
+ <!-- this chain is valid, even in cloud, even though the signature field is not
+ indexed, because we are not asking for dups to be overwritten
+ -->
+ <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
+ <str name="signatureField">non_indexed_signature_sS</str>
+ <bool name="overwriteDupes">false</bool>
+ <str name="fields">v_t,t_field</str>
+ <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
+ </processor>
+ <processor class="solr.RunUpdateProcessorFactory" />
+ </updateRequestProcessorChain>
+
+ <dataDir>${solr.data.dir:}</dataDir>
+
+ <directoryFactory name="DirectoryFactory"
+ class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
+ <schemaFactory class="ClassicIndexSchemaFactory"/>
+
+ <luceneMatchVersion>${tests.luceneMatchVersion:LATEST}</luceneMatchVersion>
+
+ <xi:include href="solrconfig.snippet.randomindexconfig.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
+ <updateHandler class="solr.DirectUpdateHandler2">
+ <commitWithin>
+ <softCommit>${solr.commitwithin.softcommit:true}</softCommit>
+ </commitWithin>
+ <updateLog class="${solr.ulog:solr.UpdateLog}"></updateLog>
+ </updateHandler>
+
+ <requestHandler name="/select" class="solr.SearchHandler" />
+ <initParams path="/select">
+ <lst name="defaults">
+ <str name="df">text</str>
+ </lst>
+ </initParams>
+
+</config>
+
diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-minhash.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-minhash.xml
index c482089..6d1c151 100644
--- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-minhash.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-minhash.xml
@@ -464,38 +464,6 @@
<queryParser name="foo" class="FooQParserPlugin"/>
- <updateRequestProcessorChain name="dedupe">
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">false</bool>
- <bool name="overwriteDupes">true</bool>
- <str name="fields">v_t,t_field</str>
- <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- <updateRequestProcessorChain name="dedupe-allfields">
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">false</bool>
- <bool name="overwriteDupes">false</bool>
- <str name="signatureField">id</str>
- <str name="fields"></str>
- <str name="signatureClass">org.apache.solr.update.processor.Lookup3Signature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- <updateRequestProcessorChain name="stored_sig">
- <!-- this chain is valid even though the signature field is not
- indexed, because we are not asking for dups to be overwritten
- -->
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">true</bool>
- <str name="signatureField">non_indexed_signature_sS</str>
- <bool name="overwriteDupes">false</bool>
- <str name="fields">v_t,t_field</str>
- <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
<updateRequestProcessorChain name="uniq-fields">
<processor class="org.apache.solr.update.processor.UniqFieldsUpdateProcessorFactory">
<arr name="fieldName">
diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-plugcollector.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-plugcollector.xml
index e19aaed..4322390 100644
--- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-plugcollector.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-plugcollector.xml
@@ -451,38 +451,6 @@ based HashBitset. -->
<queryParser name="rank" class="org.apache.solr.search.RankQueryTestPlugin"/>
- <updateRequestProcessorChain name="dedupe">
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">false</bool>
- <bool name="overwriteDupes">true</bool>
- <str name="fields">v_t,t_field</str>
- <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- <updateRequestProcessorChain name="dedupe-allfields">
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">false</bool>
- <bool name="overwriteDupes">false</bool>
- <str name="signatureField">id</str>
- <str name="fields"></str>
- <str name="signatureClass">org.apache.solr.update.processor.Lookup3Signature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- <updateRequestProcessorChain name="stored_sig">
- <!-- this chain is valid even though the signature field is not
- indexed, because we are not asking for dups to be overwritten
- -->
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">true</bool>
- <str name="signatureField">non_indexed_signature_sS</str>
- <bool name="overwriteDupes">false</bool>
- <str name="fields">v_t,t_field</str>
- <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
<updateRequestProcessorChain name="uniq-fields">
<processor class="org.apache.solr.update.processor.UniqFieldsUpdateProcessorFactory">
<arr name="fieldName">
diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-tlog.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-tlog.xml
index f7cfdb9..547e758 100644
--- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-tlog.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-tlog.xml
@@ -72,30 +72,6 @@
</autoSoftCommit>
</updateHandler>
- <updateRequestProcessorChain name="dedupe">
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">true</bool>
- <bool name="overwriteDupes">true</bool>
- <str name="fields">v_t,t_field</str>
- <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- <updateRequestProcessorChain name="stored_sig">
- <!-- this chain is valid even though the signature field is not
- indexed, because we are not asking for dups to be overwritten
- -->
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">true</bool>
- <str name="signatureField">non_indexed_signature_sS</str>
- <bool name="overwriteDupes">false</bool>
- <str name="fields">v_t,t_field</str>
- <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
-
-
<updateRequestProcessorChain name="distrib-dup-test-chain-explicit">
<!-- explicit test using processors before and after distrib -->
<processor class="solr.RegexReplaceProcessorFactory">
diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml
index d143329..2b5b235 100644
--- a/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml
@@ -464,38 +464,6 @@
<queryParser name="foo" class="FooQParserPlugin"/>
- <updateRequestProcessorChain name="dedupe">
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">false</bool>
- <bool name="overwriteDupes">true</bool>
- <str name="fields">v_t,t_field</str>
- <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- <updateRequestProcessorChain name="dedupe-allfields">
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">false</bool>
- <bool name="overwriteDupes">false</bool>
- <str name="signatureField">id</str>
- <str name="fields"></str>
- <str name="signatureClass">org.apache.solr.update.processor.Lookup3Signature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
- <updateRequestProcessorChain name="stored_sig">
- <!-- this chain is valid even though the signature field is not
- indexed, because we are not asking for dups to be overwritten
- -->
- <processor class="org.apache.solr.update.processor.SignatureUpdateProcessorFactory">
- <bool name="enabled">true</bool>
- <str name="signatureField">non_indexed_signature_sS</str>
- <bool name="overwriteDupes">false</bool>
- <str name="fields">v_t,t_field</str>
- <str name="signatureClass">org.apache.solr.update.processor.TextProfileSignature</str>
- </processor>
- <processor class="solr.RunUpdateProcessorFactory" />
- </updateRequestProcessorChain>
<updateRequestProcessorChain name="uniq-fields">
<processor class="org.apache.solr.update.processor.UniqFieldsUpdateProcessorFactory">
<arr name="fieldName">
diff --git a/solr/core/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java b/solr/core/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java
index 99951cc..acd4877 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/SignatureUpdateProcessorFactoryTest.java
@@ -56,8 +56,7 @@ public class SignatureUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
@BeforeClass
public static void beforeClass() throws Exception {
- System.setProperty("enable.update.log", "false"); // schema12 doesn't support _version_
- initCore("solrconfig.xml", "schema12.xml");
+ initCore("solrconfig-dedup-overwrites.xml", "schema15.xml");
}
@Override
@@ -80,14 +79,8 @@ public class SignatureUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
@Test
public void testDupeAllFieldsDetection() throws Exception {
-
this.chain = "dedupe-allfields";
-
- SolrCore core = h.getCore();
- UpdateRequestProcessorChain chained = core.getUpdateProcessingChain(this.chain);
- SignatureUpdateProcessorFactory factory = ((SignatureUpdateProcessorFactory) chained.getProcessors().get(0));
- factory.setEnabled(true);
- assertNotNull(chained);
+ assertNotNull(h.getCore().getUpdateProcessingChain(this.chain));
addDoc(adoc("v_t", "Hello Dude man!"));
addDoc(adoc("v_t", "Hello Dude man!", "name", "name1'"));
@@ -96,18 +89,11 @@ public class SignatureUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
addDoc(commit());
checkNumDocs(3);
-
- factory.setEnabled(false);
}
@Test
public void testDupeDetection() throws Exception {
- SolrCore core = h.getCore();
- UpdateRequestProcessorChain chained = core.getUpdateProcessingChain(
- "dedupe");
- SignatureUpdateProcessorFactory factory = ((SignatureUpdateProcessorFactory) chained.getProcessors().get(0));
- factory.setEnabled(true);
- assertNotNull(chained);
+ assertNotNull(h.getCore().getUpdateProcessingChain(this.chain));
addDoc(adoc("id", "1a", "v_t", "Hello Dude man!", "name", "ali babi'"));
addDoc(adoc("id", "2a", "name", "ali babi", "v_t", "Hello Dude man . -"));
@@ -143,15 +129,12 @@ public class SignatureUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
addDoc(commit());
checkNumDocs(4);
- factory.setEnabled(false);
}
@Test
public void testMultiThreaded() throws Exception {
- UpdateRequestProcessorChain chained = h.getCore().getUpdateProcessingChain(
- "dedupe");
- SignatureUpdateProcessorFactory factory = ((SignatureUpdateProcessorFactory) chained.getProcessors().get(0));
- factory.setEnabled(true);
+ assertNotNull(h.getCore().getUpdateProcessingChain(this.chain));
+
Thread[] threads = null;
Thread[] threads2 = null;
@@ -221,7 +204,6 @@ public class SignatureUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
assertU(commit());
checkNumDocs(1);
- factory.setEnabled(false);
}
/**
@@ -229,11 +211,11 @@ public class SignatureUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
*/
@Test
public void testNonIndexedSignatureField() throws Exception {
- SolrCore core = h.getCore();
+ this.chain = "stored_sig";
+ assertNotNull(h.getCore().getUpdateProcessingChain(this.chain));
checkNumDocs(0);
- chain = "stored_sig";
addDoc(adoc("id", "2a", "v_t", "Hello Dude man!", "name", "ali babi'"));
addDoc(adoc("id", "2b", "v_t", "Hello Dude man!", "name", "ali babi'"));
addDoc(commit());
@@ -263,13 +245,8 @@ public class SignatureUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
@SuppressWarnings({"rawtypes"})
public void testNonStringFieldsValues() throws Exception {
this.chain = "dedupe-allfields";
-
- SolrCore core = h.getCore();
- UpdateRequestProcessorChain chained = core
- .getUpdateProcessingChain(chain);
- SignatureUpdateProcessorFactory factory = ((SignatureUpdateProcessorFactory) chained.getProcessors().get(0));
- factory.setEnabled(true);
-
+ assertNotNull(h.getCore().getUpdateProcessingChain(this.chain));
+
Map<String,String[]> params = new HashMap<>();
MultiMapSolrParams mmparams = new MultiMapSolrParams(params);
params.put(UpdateParams.UPDATE_CHAIN, new String[] {chain});
@@ -338,8 +315,6 @@ public class SignatureUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
addDoc(commit());
checkNumDocs(4);
-
-
}
/** A list with an unusual toString */
diff --git a/solr/core/src/test/org/apache/solr/update/processor/TestPartialUpdateDeduplication.java b/solr/core/src/test/org/apache/solr/update/processor/TestPartialUpdateDeduplication.java
index bab5cd3..8925da5 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/TestPartialUpdateDeduplication.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/TestPartialUpdateDeduplication.java
@@ -28,7 +28,7 @@ import java.util.Map;
public class TestPartialUpdateDeduplication extends SolrTestCaseJ4 {
@BeforeClass
public static void beforeClass() throws Exception {
- initCore("solrconfig-tlog.xml", "schema15.xml");
+ initCore("solrconfig-dedup-overwrites.xml", "schema15.xml");
}
@Test
diff --git a/solr/server/solr/configsets/_default/conf/solrconfig.xml b/solr/server/solr/configsets/_default/conf/solrconfig.xml
index db9604f..f4bd4a3 100644
--- a/solr/server/solr/configsets/_default/conf/solrconfig.xml
+++ b/solr/server/solr/configsets/_default/conf/solrconfig.xml
@@ -1199,7 +1199,6 @@
<processor class="solr.processor.SignatureUpdateProcessorFactory">
<bool name="enabled">true</bool>
<str name="signatureField">id</str>
- <bool name="overwriteDupes">false</bool>
<str name="fields">name,features,cat</str>
<str name="signatureClass">solr.processor.Lookup3Signature</str>
</processor>
diff --git a/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml b/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
index 6727d55..29b2003 100644
--- a/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
+++ b/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
@@ -1394,7 +1394,6 @@
<processor class="solr.processor.SignatureUpdateProcessorFactory">
<bool name="enabled">true</bool>
<str name="signatureField">id</str>
- <bool name="overwriteDupes">false</bool>
<str name="fields">name,features,cat</str>
<str name="signatureClass">solr.processor.Lookup3Signature</str>
</processor>