diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 6f6133f3a51..f005ae87b12 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -294,6 +294,9 @@ Other Changes * SOLR-8711: Upgrade Carrot2 clustering dependency to 3.12.0. (Dawid Weiss) +* SOLR-8690: Make peersync fingerprinting optional with solr.disableFingerprint system + property. (yonik) + ======================= 5.5.0 ======================= Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release diff --git a/solr/core/src/java/org/apache/solr/update/PeerSync.java b/solr/core/src/java/org/apache/solr/update/PeerSync.java index ea717830c07..a1ef5f49594 100644 --- a/solr/core/src/java/org/apache/solr/update/PeerSync.java +++ b/solr/core/src/java/org/apache/solr/update/PeerSync.java @@ -140,7 +140,7 @@ public class PeerSync { this.maxUpdates = nUpdates; this.cantReachIsSuccess = cantReachIsSuccess; this.getNoVersionsIsSuccess = getNoVersionsIsSuccess; - this.doFingerprint = doFingerprint; + this.doFingerprint = doFingerprint && !("true".equals(System.getProperty("solr.disableFingerprint"))); this.client = core.getCoreDescriptor().getCoreContainer().getUpdateShardHandler().getHttpClient(); this.onlyIfActive = onlyIfActive; diff --git a/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java b/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java index bcaf84662f2..64edd2120c7 100644 --- a/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java +++ b/solr/core/src/test/org/apache/solr/update/PeerSyncTest.java @@ -181,6 +181,14 @@ public class PeerSyncTest extends BaseDistributedSearchTestCase { // client0 now has an additional add beyond our window and the fingerprint should cause this to fail assertSync(client1, numVersions, false, shardsArr[0]); + // if we turn of fingerprinting, it should succeed + System.setProperty("solr.disableFingerprint", "true"); + try { + assertSync(client1, numVersions, true, shardsArr[0]); + } finally { + System.clearProperty("solr.disableFingerprint"); + } + // lets add the missing document and verify that order doesn't matter add(client1, seenLeader, sdoc("id",Integer.toString((int)v),"_version_",v)); assertSync(client1, numVersions, true, shardsArr[0]);