From 7405bb19fa424ec79c6daaafd986670dc54d7dfe Mon Sep 17 00:00:00 2001 From: David Smiley Date: Mon, 14 Oct 2024 10:46:49 -0400 Subject: [PATCH 01/67] SOLR-17414: multiThreaded search: don't throw RejectedExecutionException (#2701) When searching with multiThreaded=true, the internal tasks may now block instead of enqueuing with a risk of rejection. Solr will use less resources under stress but to get the most of your machine, you may want to increase the thread pool. And: * Revert ExecutorUtil change from SOLR-17298 * Revert ExecutorUtil change from SOLR-13350 * rename CoreContainer.collectorManager to indexSearcherExecutor --- solr/CHANGES.txt | 6 +- .../org/apache/solr/core/CoreContainer.java | 25 ++----- .../java/org/apache/solr/core/NodeConfig.java | 1 - .../apache/solr/search/SolrIndexSearcher.java | 48 +++++++++++- .../pages/common-query-parameters.adoc | 5 +- .../apache/solr/common/util/ExecutorUtil.java | 73 +------------------ 6 files changed, 65 insertions(+), 93 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 1032406f538..1b60d044ad0 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -10,7 +10,7 @@ New Features --------------------- * SOLR-14496: Solr CLI commands now can interact with a Solr secured using Basic Authentication. (Eric Pugh) -* SOLR-17467: Solr CLI bin/solr start defaults to starting Solr in Cloud mode, use --user-managed switch for User Managed (aka Standalone) mode. (Eric Pugh) +* SOLR-17467: Solr CLI bin/solr start defaults to starting Solr in Cloud mode, use --user-managed switch for User Managed (aka Standalone) mode. (Eric Pugh) Improvements --------------------- @@ -141,6 +141,10 @@ Improvements override an HTTP client's base URL may use `Http2SolrClient.requestWithBaseUrl` instead. (Jason Gerlowski, Sanjay Dutt, David Smiley) +* SOLR-17414: When searching with multiThreaded=true, the internal tasks may now block instead of + enqueuing with a risk of rejection. Solr will use less resources under stress but to get the most + of your machine, you may want to increase the thread pool. (David Smiley) + Optimizations --------------------- * SOLR-14985: Solrj CloudSolrClient with Solr URLs had serious performance regressions (since the diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java index b78475d8ad5..a92c73ef496 100644 --- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java +++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java @@ -26,7 +26,6 @@ import static org.apache.solr.common.params.CommonParams.METRICS_PATH; import static org.apache.solr.common.params.CommonParams.ZK_PATH; import static org.apache.solr.common.params.CommonParams.ZK_STATUS_PATH; -import static org.apache.solr.search.CpuAllowedLimit.TIMING_CONTEXT; import static org.apache.solr.security.AuthenticationPlugin.AUTHENTICATION_PLUGIN_PROP; import com.github.benmanes.caffeine.cache.Interner; @@ -144,6 +143,7 @@ import org.apache.solr.search.CacheConfig; import org.apache.solr.search.SolrCache; import org.apache.solr.search.SolrFieldCacheBean; +import org.apache.solr.search.SolrIndexSearcher; import org.apache.solr.security.AllowListUrlChecker; import org.apache.solr.security.AuditLoggerPlugin; import org.apache.solr.security.AuthenticationPlugin; @@ -158,7 +158,6 @@ import org.apache.solr.util.OrderedExecutor; import org.apache.solr.util.RefCounted; import org.apache.solr.util.StartupLoggingUtils; -import org.apache.solr.util.ThreadCpuTimer; import org.apache.solr.util.stats.MetricUtils; import org.apache.zookeeper.KeeperException; import org.glassfish.hk2.utilities.binding.AbstractBinder; @@ -183,8 +182,8 @@ public class CoreContainer { final SolrCores solrCores; - public Executor getCollectorExecutor() { - return collectorExecutor; + public Executor getIndexSearcherExecutor() { + return indexSearcherExecutor; } public static class CoreLoadFailure { @@ -290,7 +289,7 @@ public JerseyAppHandlerCache getJerseyAppHandlerCache() { public final NodeRoles nodeRoles = new NodeRoles(System.getProperty(NodeRoles.NODE_ROLES_PROP)); - private final ExecutorService collectorExecutor; + private final ExecutorService indexSearcherExecutor; private final ClusterSingletons clusterSingletons = new ClusterSingletons( @@ -448,17 +447,7 @@ public CoreContainer(NodeConfig config, CoresLocator locator, boolean asyncSolrC this.allowListUrlChecker = AllowListUrlChecker.create(config); - final int indexSearcherExecutorThreads = cfg.getIndexSearcherExecutorThreads(); - if (0 < indexSearcherExecutorThreads) { - this.collectorExecutor = - ExecutorUtil.newMDCAwareFixedThreadPool( - indexSearcherExecutorThreads, // thread count - indexSearcherExecutorThreads * 1000, // queue size - new SolrNamedThreadFactory("searcherCollector"), - () -> ThreadCpuTimer.reset(TIMING_CONTEXT)); - } else { - this.collectorExecutor = null; - } + this.indexSearcherExecutor = SolrIndexSearcher.initCollectorExecutor(cfg); } @SuppressWarnings({"unchecked"}) @@ -685,7 +674,7 @@ protected CoreContainer(Object testConstructor) { distributedCollectionCommandRunner = Optional.empty(); allowPaths = null; allowListUrlChecker = null; - collectorExecutor = null; + indexSearcherExecutor = null; } public static CoreContainer createAndLoad(Path solrHome) { @@ -1288,7 +1277,7 @@ public void shutdown() { } ExecutorUtil.shutdownAndAwaitTermination(coreContainerAsyncTaskExecutor); - ExecutorUtil.shutdownAndAwaitTermination(collectorExecutor); + ExecutorUtil.shutdownAndAwaitTermination(indexSearcherExecutor); ExecutorService customThreadPool = ExecutorUtil.newMDCAwareCachedThreadPool(new SolrNamedThreadFactory("closeThreadPool")); diff --git a/solr/core/src/java/org/apache/solr/core/NodeConfig.java b/solr/core/src/java/org/apache/solr/core/NodeConfig.java index dbc44336484..72ec1bd5ee0 100644 --- a/solr/core/src/java/org/apache/solr/core/NodeConfig.java +++ b/solr/core/src/java/org/apache/solr/core/NodeConfig.java @@ -629,7 +629,6 @@ public static class NodeConfigBuilder { public static final int DEFAULT_INDEX_SEARCHER_EXECUTOR_THREADS = Runtime.getRuntime().availableProcessors(); - ; private static final String DEFAULT_CORESLOCATORCLASS = "org.apache.solr.core.CorePropertiesLocator"; diff --git a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java index 59830187f41..3c8afde39ff 100644 --- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java +++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java @@ -16,6 +16,8 @@ */ package org.apache.solr.search; +import static org.apache.solr.search.CpuAllowedLimit.TIMING_CONTEXT; + import com.codahale.metrics.Gauge; import java.io.Closeable; import java.io.IOException; @@ -31,6 +33,8 @@ import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.SynchronousQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; @@ -92,9 +96,12 @@ import org.apache.solr.common.SolrException.ErrorCode; import org.apache.solr.common.params.ModifiableSolrParams; import org.apache.solr.common.util.CollectionUtil; +import org.apache.solr.common.util.ExecutorUtil.MDCAwareThreadPoolExecutor; import org.apache.solr.common.util.ObjectReleaseTracker; +import org.apache.solr.common.util.SolrNamedThreadFactory; import org.apache.solr.core.DirectoryFactory; import org.apache.solr.core.DirectoryFactory.DirContext; +import org.apache.solr.core.NodeConfig; import org.apache.solr.core.SolrConfig; import org.apache.solr.core.SolrCore; import org.apache.solr.core.SolrInfoBean; @@ -115,6 +122,7 @@ import org.apache.solr.update.IndexFingerprint; import org.apache.solr.update.SolrIndexConfig; import org.apache.solr.util.IOFunction; +import org.apache.solr.util.ThreadCpuTimer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -210,6 +218,44 @@ private static DirectoryReader wrapReader(SolrCore core, DirectoryReader reader) return reader; } + /** + * Create an {@link ExecutorService} to be used by the Lucene {@link IndexSearcher#getExecutor()}. + * Shared across the whole node because it's a machine CPU resource. + */ + public static ExecutorService initCollectorExecutor(NodeConfig cfg) { + final int indexSearcherExecutorThreads = cfg.getIndexSearcherExecutorThreads(); + if (0 >= indexSearcherExecutorThreads) { + return null; + } + + return new MDCAwareThreadPoolExecutor( + indexSearcherExecutorThreads, + indexSearcherExecutorThreads, + 0L, + TimeUnit.MILLISECONDS, + new SynchronousQueue<>(true) { // fairness + // a hack to force ThreadPoolExecutor to block if threads are busy + // -- otherwise it will throw RejectedExecutionException; unacceptable + @Override + public boolean offer(Runnable runnable) { // is supposed to not block, but we do anyway + try { + put(runnable); // blocks + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new RuntimeException("interrupted submitting to search multi-threaded pool", e); + } + return true; + } + }, + new SolrNamedThreadFactory("searcherCollector")) { + + @Override + protected void beforeExecute(Thread t, Runnable r) { + ThreadCpuTimer.reset(TIMING_CONTEXT); + } + }; + } + /** * Builds the necessary collector chain (via delegate wrapping) and executes the query against it. * This method takes into consideration both the explicitly provided collector and postFilter as @@ -336,7 +382,7 @@ public SolrIndexSearcher( boolean reserveDirectory, DirectoryFactory directoryFactory) throws IOException { - super(wrapReader(core, r), core.getCoreContainer().getCollectorExecutor()); + super(wrapReader(core, r), core.getCoreContainer().getIndexSearcherExecutor()); this.path = path; this.directoryFactory = directoryFactory; diff --git a/solr/solr-ref-guide/modules/query-guide/pages/common-query-parameters.adoc b/solr/solr-ref-guide/modules/query-guide/pages/common-query-parameters.adoc index cacbddee4ac..e0684f9abd4 100644 --- a/solr/solr-ref-guide/modules/query-guide/pages/common-query-parameters.adoc +++ b/solr/solr-ref-guide/modules/query-guide/pages/common-query-parameters.adoc @@ -428,7 +428,10 @@ Similar to using <>, when ear |=== This parameter set to `true` or `false` controls if Solr may use more than one thread to satisfy the request. -A `true` value presently allows the IndexSearcher to search across Lucene's segments in parallel, and the xref:configuration-guide:configuring-solr-xml.adoc#indexSearcherExecutorThreads[indexSearcherExecutorThreads] value can be customised in the `solr.xml` file. This parameter is ignored in the presence of `&segmentsTerminateEarly=true` (future work may enable it). This is a new parameter and is considered experimental and subject to change or removal in subsequent releases. Please share your feedback and experiences with it on our mailing lists. +A `true` value presently allows the IndexSearcher to search across Lucene's segments in parallel, and the xref:configuration-guide:configuring-solr-xml.adoc#indexSearcherExecutorThreads[indexSearcherExecutorThreads] value can be customised in the `solr.xml` file. +This parameter is ignored in the presence of `&segmentsTerminateEarly=true` (future work may enable it). +This is a new parameter and is considered experimental and subject to change or removal in subsequent releases. +Please share your feedback and experiences with it on our mailing lists. == omitHeader Parameter diff --git a/solr/solrj/src/java/org/apache/solr/common/util/ExecutorUtil.java b/solr/solrj/src/java/org/apache/solr/common/util/ExecutorUtil.java index 29873bf09b9..129ec8df8ca 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/ExecutorUtil.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/ExecutorUtil.java @@ -201,18 +201,6 @@ public static ExecutorService newMDCAwareFixedThreadPool( nThreads, nThreads, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(), threadFactory); } - public static ExecutorService newMDCAwareFixedThreadPool( - int nThreads, int queueCapacity, ThreadFactory threadFactory, Runnable beforeExecute) { - return new MDCAwareThreadPoolExecutor( - nThreads, - nThreads, - 0L, - TimeUnit.MILLISECONDS, - new LinkedBlockingQueue<>(queueCapacity), - threadFactory, - beforeExecute); - } - /** * See {@link java.util.concurrent.Executors#newSingleThreadExecutor(ThreadFactory)}. Note the * thread is always active, even if no tasks are submitted to the executor. @@ -275,10 +263,8 @@ public static ExecutorService newMDCAwareCachedThreadPool( public static class MDCAwareThreadPoolExecutor extends ThreadPoolExecutor { private static final int MAX_THREAD_NAME_LEN = 512; - public static final Runnable NOOP = () -> {}; private final boolean enableSubmitterStackTrace; - private final Runnable beforeExecuteTask; public MDCAwareThreadPoolExecutor( int corePoolSize, @@ -290,7 +276,6 @@ public MDCAwareThreadPoolExecutor( RejectedExecutionHandler handler) { super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler); this.enableSubmitterStackTrace = true; - this.beforeExecuteTask = NOOP; } public MDCAwareThreadPoolExecutor( @@ -301,7 +286,6 @@ public MDCAwareThreadPoolExecutor( BlockingQueue workQueue) { super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue); this.enableSubmitterStackTrace = true; - this.beforeExecuteTask = NOOP; } public MDCAwareThreadPoolExecutor( @@ -311,27 +295,7 @@ public MDCAwareThreadPoolExecutor( TimeUnit unit, BlockingQueue workQueue, ThreadFactory threadFactory) { - this( - corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, true, NOOP); - } - - public MDCAwareThreadPoolExecutor( - int corePoolSize, - int maximumPoolSize, - long keepAliveTime, - TimeUnit unit, - BlockingQueue workQueue, - ThreadFactory threadFactory, - Runnable beforeExecuteTask) { - this( - corePoolSize, - maximumPoolSize, - keepAliveTime, - unit, - workQueue, - threadFactory, - true, - beforeExecuteTask); + this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, true); } public MDCAwareThreadPoolExecutor( @@ -341,11 +305,9 @@ public MDCAwareThreadPoolExecutor( TimeUnit unit, BlockingQueue workQueue, ThreadFactory threadFactory, - boolean enableSubmitterStackTrace, - Runnable beforeExecuteTask) { + boolean enableSubmitterStackTrace) { super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory); this.enableSubmitterStackTrace = enableSubmitterStackTrace; - this.beforeExecuteTask = beforeExecuteTask; } public MDCAwareThreadPoolExecutor( @@ -357,37 +319,6 @@ public MDCAwareThreadPoolExecutor( RejectedExecutionHandler handler) { super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, handler); this.enableSubmitterStackTrace = true; - this.beforeExecuteTask = NOOP; - } - - public MDCAwareThreadPoolExecutor( - int corePoolSize, - int maximumPoolSize, - int keepAliveTime, - TimeUnit timeUnit, - BlockingQueue blockingQueue, - SolrNamedThreadFactory httpShardExecutor, - boolean enableSubmitterStackTrace) { - super( - corePoolSize, maximumPoolSize, keepAliveTime, timeUnit, blockingQueue, httpShardExecutor); - this.enableSubmitterStackTrace = enableSubmitterStackTrace; - this.beforeExecuteTask = NOOP; - } - - public MDCAwareThreadPoolExecutor( - int i, - int maxValue, - long l, - TimeUnit timeUnit, - BlockingQueue es, - SolrNamedThreadFactory testExecutor, - boolean b) { - this(i, maxValue, l, timeUnit, es, testExecutor, b, NOOP); - } - - @Override - protected void beforeExecute(Thread t, Runnable r) { - this.beforeExecuteTask.run(); } @Override From 6fb78ae1c25f9ae618154bbac06bd737fd7a3fbd Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Tue, 15 Oct 2024 07:05:59 -0400 Subject: [PATCH 02/67] Parse long format for auth command (#2760) --- solr/bin/solr.cmd | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/solr/bin/solr.cmd b/solr/bin/solr.cmd index f4f3d927fc0..846433022c5 100755 --- a/solr/bin/solr.cmd +++ b/solr/bin/solr.cmd @@ -1519,11 +1519,11 @@ for %%a in (%*) do ( if "!arg:~0,1!" equ "-" set "option=!arg!" ) else ( set "option!option!=%%a" - if "!option!" equ "-d" set "SOLR_SERVER_DIR=%%a" - if "!option!" equ "--server-dir" set "SOLR_SERVER_DIR=%%a" if "!option!" equ "-s" set "SOLR_HOME=%%a" - if "!option!" equ "--solr-home" set "SOLR_HOME=%%a" - if not "!option!" equ "-s" if not "!option!" equ "-d" ( + if "!option!" equ "--solr-home" set "SOLR_HOME=%%a" + if "!option!" equ "-d" set "SOLR_SERVER_DIR=%%a" + if "!option!" equ "--server-dir" set "SOLR_SERVER_DIR=%%a" + if not "!option!" equ "-s" if not "!option!" equ "--solr-home" if not "!option!" equ "-d" if not "!option!" equ "--server-dir" ( set "AUTH_PARAMS=!AUTH_PARAMS! !option! %%a" ) set "option=" From 81d5a7ab919d579a688f03cc5c86c332c864454c Mon Sep 17 00:00:00 2001 From: Solr Bot <125606113+solrbot@users.noreply.github.com> Date: Wed, 16 Oct 2024 12:35:17 +0200 Subject: [PATCH 03/67] Update dependency com.fasterxml.jackson:jackson-bom to v2.18.0 (#2769) --- .../jackson-annotations-2.17.2.jar.sha1 | 1 - .../jackson-annotations-2.18.0.jar.sha1 | 1 + solr/licenses/jackson-core-2.17.2.jar.sha1 | 1 - solr/licenses/jackson-core-2.18.0.jar.sha1 | 1 + .../licenses/jackson-databind-2.17.2.jar.sha1 | 1 - .../licenses/jackson-databind-2.18.0.jar.sha1 | 1 + .../jackson-dataformat-cbor-2.17.2.jar.sha1 | 1 - .../jackson-dataformat-cbor-2.18.0.jar.sha1 | 1 + .../jackson-dataformat-csv-2.17.2.jar.sha1 | 1 - .../jackson-dataformat-csv-2.18.0.jar.sha1 | 1 + .../jackson-dataformat-smile-2.17.2.jar.sha1 | 1 - .../jackson-dataformat-smile-2.18.0.jar.sha1 | 1 + .../jackson-dataformat-xml-2.17.2.jar.sha1 | 1 - .../jackson-dataformat-xml-2.18.0.jar.sha1 | 1 + .../jackson-datatype-jdk8-2.17.2.jar.sha1 | 1 - .../jackson-datatype-jdk8-2.18.0.jar.sha1 | 1 + .../jackson-datatype-jsr310-2.17.2.jar.sha1 | 1 - .../jackson-datatype-jsr310-2.18.0.jar.sha1 | 1 + ...akarta-xmlbind-annotations-2.17.2.jar.sha1 | 1 - ...akarta-xmlbind-annotations-2.18.0.jar.sha1 | 1 + .../jackson-module-kotlin-2.17.2.jar.sha1 | 1 - .../jackson-module-kotlin-2.18.0.jar.sha1 | 1 + ...son-module-parameter-names-2.17.2.jar.sha1 | 1 - ...son-module-parameter-names-2.18.0.jar.sha1 | 1 + .../jackson-module-scala_2.13-2.17.2.jar.sha1 | 1 - .../jackson-module-scala_2.13-2.18.0.jar.sha1 | 1 + solr/licenses/scala-library-2.13.13.jar.sha1 | 1 - solr/licenses/scala-library-2.13.15.jar.sha1 | 1 + solr/licenses/woodstox-core-6.7.0.jar.sha1 | 1 - solr/licenses/woodstox-core-7.0.0.jar.sha1 | 1 + versions.lock | 34 +++++++++---------- versions.props | 2 +- 32 files changed, 33 insertions(+), 33 deletions(-) delete mode 100644 solr/licenses/jackson-annotations-2.17.2.jar.sha1 create mode 100644 solr/licenses/jackson-annotations-2.18.0.jar.sha1 delete mode 100644 solr/licenses/jackson-core-2.17.2.jar.sha1 create mode 100644 solr/licenses/jackson-core-2.18.0.jar.sha1 delete mode 100644 solr/licenses/jackson-databind-2.17.2.jar.sha1 create mode 100644 solr/licenses/jackson-databind-2.18.0.jar.sha1 delete mode 100644 solr/licenses/jackson-dataformat-cbor-2.17.2.jar.sha1 create mode 100644 solr/licenses/jackson-dataformat-cbor-2.18.0.jar.sha1 delete mode 100644 solr/licenses/jackson-dataformat-csv-2.17.2.jar.sha1 create mode 100644 solr/licenses/jackson-dataformat-csv-2.18.0.jar.sha1 delete mode 100644 solr/licenses/jackson-dataformat-smile-2.17.2.jar.sha1 create mode 100644 solr/licenses/jackson-dataformat-smile-2.18.0.jar.sha1 delete mode 100644 solr/licenses/jackson-dataformat-xml-2.17.2.jar.sha1 create mode 100644 solr/licenses/jackson-dataformat-xml-2.18.0.jar.sha1 delete mode 100644 solr/licenses/jackson-datatype-jdk8-2.17.2.jar.sha1 create mode 100644 solr/licenses/jackson-datatype-jdk8-2.18.0.jar.sha1 delete mode 100644 solr/licenses/jackson-datatype-jsr310-2.17.2.jar.sha1 create mode 100644 solr/licenses/jackson-datatype-jsr310-2.18.0.jar.sha1 delete mode 100644 solr/licenses/jackson-module-jakarta-xmlbind-annotations-2.17.2.jar.sha1 create mode 100644 solr/licenses/jackson-module-jakarta-xmlbind-annotations-2.18.0.jar.sha1 delete mode 100644 solr/licenses/jackson-module-kotlin-2.17.2.jar.sha1 create mode 100644 solr/licenses/jackson-module-kotlin-2.18.0.jar.sha1 delete mode 100644 solr/licenses/jackson-module-parameter-names-2.17.2.jar.sha1 create mode 100644 solr/licenses/jackson-module-parameter-names-2.18.0.jar.sha1 delete mode 100644 solr/licenses/jackson-module-scala_2.13-2.17.2.jar.sha1 create mode 100644 solr/licenses/jackson-module-scala_2.13-2.18.0.jar.sha1 delete mode 100644 solr/licenses/scala-library-2.13.13.jar.sha1 create mode 100644 solr/licenses/scala-library-2.13.15.jar.sha1 delete mode 100644 solr/licenses/woodstox-core-6.7.0.jar.sha1 create mode 100644 solr/licenses/woodstox-core-7.0.0.jar.sha1 diff --git a/solr/licenses/jackson-annotations-2.17.2.jar.sha1 b/solr/licenses/jackson-annotations-2.17.2.jar.sha1 deleted file mode 100644 index d09733f1130..00000000000 --- a/solr/licenses/jackson-annotations-2.17.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -147b7b9412ffff24339f8aba080b292448e08698 diff --git a/solr/licenses/jackson-annotations-2.18.0.jar.sha1 b/solr/licenses/jackson-annotations-2.18.0.jar.sha1 new file mode 100644 index 00000000000..2303a2b3160 --- /dev/null +++ b/solr/licenses/jackson-annotations-2.18.0.jar.sha1 @@ -0,0 +1 @@ +9bddcc56af9d90f902ef5dba7348102cd12b04e2 diff --git a/solr/licenses/jackson-core-2.17.2.jar.sha1 b/solr/licenses/jackson-core-2.17.2.jar.sha1 deleted file mode 100644 index b6dd852e896..00000000000 --- a/solr/licenses/jackson-core-2.17.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -969a35cb35c86512acbadcdbbbfb044c877db814 diff --git a/solr/licenses/jackson-core-2.18.0.jar.sha1 b/solr/licenses/jackson-core-2.18.0.jar.sha1 new file mode 100644 index 00000000000..6bfee538bd7 --- /dev/null +++ b/solr/licenses/jackson-core-2.18.0.jar.sha1 @@ -0,0 +1 @@ +65e8ead7de5d8f7a53e296c363bea3182f21f925 diff --git a/solr/licenses/jackson-databind-2.17.2.jar.sha1 b/solr/licenses/jackson-databind-2.17.2.jar.sha1 deleted file mode 100644 index 924123949d7..00000000000 --- a/solr/licenses/jackson-databind-2.17.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -e6deb029e5901e027c129341fac39e515066b68c diff --git a/solr/licenses/jackson-databind-2.18.0.jar.sha1 b/solr/licenses/jackson-databind-2.18.0.jar.sha1 new file mode 100644 index 00000000000..d04d844d43f --- /dev/null +++ b/solr/licenses/jackson-databind-2.18.0.jar.sha1 @@ -0,0 +1 @@ +8dba1f789a75fc30b59303574fe2b269afa4d3bc diff --git a/solr/licenses/jackson-dataformat-cbor-2.17.2.jar.sha1 b/solr/licenses/jackson-dataformat-cbor-2.17.2.jar.sha1 deleted file mode 100644 index 7a74616b265..00000000000 --- a/solr/licenses/jackson-dataformat-cbor-2.17.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -57fa7c1b5104bbc4599278d13933a937ee058e68 diff --git a/solr/licenses/jackson-dataformat-cbor-2.18.0.jar.sha1 b/solr/licenses/jackson-dataformat-cbor-2.18.0.jar.sha1 new file mode 100644 index 00000000000..23956a91bb7 --- /dev/null +++ b/solr/licenses/jackson-dataformat-cbor-2.18.0.jar.sha1 @@ -0,0 +1 @@ +90ec8bb9c6f7d1535e49272d344907ba57b014d6 diff --git a/solr/licenses/jackson-dataformat-csv-2.17.2.jar.sha1 b/solr/licenses/jackson-dataformat-csv-2.17.2.jar.sha1 deleted file mode 100644 index 03945d1be34..00000000000 --- a/solr/licenses/jackson-dataformat-csv-2.17.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -e03070d8f345535bcf93f5087be52c67d22581c4 diff --git a/solr/licenses/jackson-dataformat-csv-2.18.0.jar.sha1 b/solr/licenses/jackson-dataformat-csv-2.18.0.jar.sha1 new file mode 100644 index 00000000000..ac8ed0a127d --- /dev/null +++ b/solr/licenses/jackson-dataformat-csv-2.18.0.jar.sha1 @@ -0,0 +1 @@ +13659d6c9e8e0798ddbf19c612951c976f10aa6d diff --git a/solr/licenses/jackson-dataformat-smile-2.17.2.jar.sha1 b/solr/licenses/jackson-dataformat-smile-2.17.2.jar.sha1 deleted file mode 100644 index f3ce7163082..00000000000 --- a/solr/licenses/jackson-dataformat-smile-2.17.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -20e956b9b6f67138edd39fab7a506ded19638bcb diff --git a/solr/licenses/jackson-dataformat-smile-2.18.0.jar.sha1 b/solr/licenses/jackson-dataformat-smile-2.18.0.jar.sha1 new file mode 100644 index 00000000000..67cd3a36fcc --- /dev/null +++ b/solr/licenses/jackson-dataformat-smile-2.18.0.jar.sha1 @@ -0,0 +1 @@ +aeba95810bd35d672ca50c4a627a72543473e8b8 diff --git a/solr/licenses/jackson-dataformat-xml-2.17.2.jar.sha1 b/solr/licenses/jackson-dataformat-xml-2.17.2.jar.sha1 deleted file mode 100644 index 2ceffa565c8..00000000000 --- a/solr/licenses/jackson-dataformat-xml-2.17.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ad58f5bd089e743ac6e5999b2d1e3cf8515cea9a diff --git a/solr/licenses/jackson-dataformat-xml-2.18.0.jar.sha1 b/solr/licenses/jackson-dataformat-xml-2.18.0.jar.sha1 new file mode 100644 index 00000000000..e084b28dd79 --- /dev/null +++ b/solr/licenses/jackson-dataformat-xml-2.18.0.jar.sha1 @@ -0,0 +1 @@ +abc59039b723b1c2d30d4c0e4a94dd56825f664a diff --git a/solr/licenses/jackson-datatype-jdk8-2.17.2.jar.sha1 b/solr/licenses/jackson-datatype-jdk8-2.17.2.jar.sha1 deleted file mode 100644 index cc425cd38cc..00000000000 --- a/solr/licenses/jackson-datatype-jdk8-2.17.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -efd3dd0e1d0db8bc72abbe71c15e697bb83b4b45 diff --git a/solr/licenses/jackson-datatype-jdk8-2.18.0.jar.sha1 b/solr/licenses/jackson-datatype-jdk8-2.18.0.jar.sha1 new file mode 100644 index 00000000000..7e08a14678a --- /dev/null +++ b/solr/licenses/jackson-datatype-jdk8-2.18.0.jar.sha1 @@ -0,0 +1 @@ +2046c6ad99a59b5bccf840021f5b3dcf2890acc2 diff --git a/solr/licenses/jackson-datatype-jsr310-2.17.2.jar.sha1 b/solr/licenses/jackson-datatype-jsr310-2.17.2.jar.sha1 deleted file mode 100644 index dbb6c44b420..00000000000 --- a/solr/licenses/jackson-datatype-jsr310-2.17.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -267b85e9ba2892a37be6d80aa9ca1438a0d8c210 diff --git a/solr/licenses/jackson-datatype-jsr310-2.18.0.jar.sha1 b/solr/licenses/jackson-datatype-jsr310-2.18.0.jar.sha1 new file mode 100644 index 00000000000..202debec544 --- /dev/null +++ b/solr/licenses/jackson-datatype-jsr310-2.18.0.jar.sha1 @@ -0,0 +1 @@ +ed3e9d73b532bb4eba3ac31ca44d4debe0c418de diff --git a/solr/licenses/jackson-module-jakarta-xmlbind-annotations-2.17.2.jar.sha1 b/solr/licenses/jackson-module-jakarta-xmlbind-annotations-2.17.2.jar.sha1 deleted file mode 100644 index 6e1e58e7a1f..00000000000 --- a/solr/licenses/jackson-module-jakarta-xmlbind-annotations-2.17.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -6c9723133a918f5777bde827ce6a6f1e4db935b2 diff --git a/solr/licenses/jackson-module-jakarta-xmlbind-annotations-2.18.0.jar.sha1 b/solr/licenses/jackson-module-jakarta-xmlbind-annotations-2.18.0.jar.sha1 new file mode 100644 index 00000000000..834aee7755c --- /dev/null +++ b/solr/licenses/jackson-module-jakarta-xmlbind-annotations-2.18.0.jar.sha1 @@ -0,0 +1 @@ +697ef6ec2884f4ae6e5e79377ae368f178cd0c61 diff --git a/solr/licenses/jackson-module-kotlin-2.17.2.jar.sha1 b/solr/licenses/jackson-module-kotlin-2.17.2.jar.sha1 deleted file mode 100644 index a7ea821fbf4..00000000000 --- a/solr/licenses/jackson-module-kotlin-2.17.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -67d4e4ec0538f59a28c92f7fa0b63bd2c8b0ef21 diff --git a/solr/licenses/jackson-module-kotlin-2.18.0.jar.sha1 b/solr/licenses/jackson-module-kotlin-2.18.0.jar.sha1 new file mode 100644 index 00000000000..d8209104bd7 --- /dev/null +++ b/solr/licenses/jackson-module-kotlin-2.18.0.jar.sha1 @@ -0,0 +1 @@ +ef6ff9000dd9b28246e9346151127638d91398fa diff --git a/solr/licenses/jackson-module-parameter-names-2.17.2.jar.sha1 b/solr/licenses/jackson-module-parameter-names-2.17.2.jar.sha1 deleted file mode 100644 index e4d6cbc9e5f..00000000000 --- a/solr/licenses/jackson-module-parameter-names-2.17.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -d27b9f95ccce98984c1ba58d61c5a9c072b1ad95 diff --git a/solr/licenses/jackson-module-parameter-names-2.18.0.jar.sha1 b/solr/licenses/jackson-module-parameter-names-2.18.0.jar.sha1 new file mode 100644 index 00000000000..9d8bdcffab0 --- /dev/null +++ b/solr/licenses/jackson-module-parameter-names-2.18.0.jar.sha1 @@ -0,0 +1 @@ +479b85d02896fef7f78420902f587e909a72de11 diff --git a/solr/licenses/jackson-module-scala_2.13-2.17.2.jar.sha1 b/solr/licenses/jackson-module-scala_2.13-2.17.2.jar.sha1 deleted file mode 100644 index 223eee8c218..00000000000 --- a/solr/licenses/jackson-module-scala_2.13-2.17.2.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -e82679ffd4a7c19dd5c5fb8ec60b66ccd2e3e6cc diff --git a/solr/licenses/jackson-module-scala_2.13-2.18.0.jar.sha1 b/solr/licenses/jackson-module-scala_2.13-2.18.0.jar.sha1 new file mode 100644 index 00000000000..3ed8ffaed21 --- /dev/null +++ b/solr/licenses/jackson-module-scala_2.13-2.18.0.jar.sha1 @@ -0,0 +1 @@ +44ec5bc8f41c3c93586b4bef9225fd5465b71662 diff --git a/solr/licenses/scala-library-2.13.13.jar.sha1 b/solr/licenses/scala-library-2.13.13.jar.sha1 deleted file mode 100644 index 9e7eae3bd05..00000000000 --- a/solr/licenses/scala-library-2.13.13.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -3b1434403ddb147b8030f98f246153e4ce622c78 diff --git a/solr/licenses/scala-library-2.13.15.jar.sha1 b/solr/licenses/scala-library-2.13.15.jar.sha1 new file mode 100644 index 00000000000..36f9c041512 --- /dev/null +++ b/solr/licenses/scala-library-2.13.15.jar.sha1 @@ -0,0 +1 @@ +ed6f1d58968b16c5f9067d5cac032d952552de58 diff --git a/solr/licenses/woodstox-core-6.7.0.jar.sha1 b/solr/licenses/woodstox-core-6.7.0.jar.sha1 deleted file mode 100644 index 0e961215105..00000000000 --- a/solr/licenses/woodstox-core-6.7.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ebbbdee43bb8c49f673f35b5697ae6d8515a4711 diff --git a/solr/licenses/woodstox-core-7.0.0.jar.sha1 b/solr/licenses/woodstox-core-7.0.0.jar.sha1 new file mode 100644 index 00000000000..7be30886465 --- /dev/null +++ b/solr/licenses/woodstox-core-7.0.0.jar.sha1 @@ -0,0 +1 @@ +beb19c02e7e28a8a4acf4a9cc8c3280ec3b94722 diff --git a/versions.lock b/versions.lock index 19194844b98..a7032642c24 100644 --- a/versions.lock +++ b/versions.lock @@ -6,17 +6,17 @@ com.carrotsearch:hppc:0.10.0 (2 constraints: d40fecb0) com.carrotsearch.randomizedtesting:randomizedtesting-runner:2.8.1 (2 constraints: cf1501e2) com.cybozu.labs:langdetect:1.1-20120112 (1 constraints: 5c066d5e) com.epam:parso:2.0.14 (1 constraints: 8e0c750e) -com.fasterxml.jackson:jackson-bom:2.17.2 (13 constraints: 3314f409) -com.fasterxml.jackson.core:jackson-annotations:2.17.2 (13 constraints: b2fd5a42) -com.fasterxml.jackson.core:jackson-core:2.17.2 (16 constraints: 7f4378e9) -com.fasterxml.jackson.core:jackson-databind:2.17.2 (28 constraints: 3b052229) -com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.17.2 (2 constraints: 651ca0f1) -com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.17.2 (2 constraints: ed19237b) -com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.17.2 (1 constraints: bc0eb166) -com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.17.2 (5 constraints: ab47ba55) -com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations:2.17.2 (2 constraints: ac2451e1) -com.fasterxml.jackson.module:jackson-module-scala_2.13:2.17.2 (2 constraints: ed19237b) -com.fasterxml.woodstox:woodstox-core:6.7.0 (2 constraints: a123c684) +com.fasterxml.jackson:jackson-bom:2.18.0 (13 constraints: 2614e9f5) +com.fasterxml.jackson.core:jackson-annotations:2.18.0 (13 constraints: aafdfb33) +com.fasterxml.jackson.core:jackson-core:2.18.0 (16 constraints: 7443a4d1) +com.fasterxml.jackson.core:jackson-databind:2.18.0 (28 constraints: 3005cafc) +com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.18.0 (2 constraints: 641ca1f1) +com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.18.0 (2 constraints: ec19ff7a) +com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.18.0 (1 constraints: bb0eb266) +com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.18.0 (5 constraints: aa473255) +com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations:2.18.0 (2 constraints: ab2414e1) +com.fasterxml.jackson.module:jackson-module-scala_2.13:2.18.0 (2 constraints: ec19ff7a) +com.fasterxml.woodstox:woodstox-core:7.0.0 (2 constraints: 9b23d883) com.github.ben-manes.caffeine:caffeine:3.1.8 (2 constraints: 1112b117) com.github.jai-imageio:jai-imageio-core:1.4.0 (1 constraints: 5c0ced01) com.github.junrar:junrar:7.5.3 (1 constraints: 660c1102) @@ -373,7 +373,7 @@ org.pcollections:pcollections:4.0.1 (1 constraints: 530f2e7d) org.quicktheories:quicktheories:0.26 (1 constraints: dc04f530) org.reactivestreams:reactive-streams:1.0.4 (4 constraints: 073bf033) org.rocksdb:rocksdbjni:7.9.2 (1 constraints: 120d091d) -org.scala-lang:scala-library:2.13.13 (6 constraints: c267449f) +org.scala-lang:scala-library:2.13.15 (6 constraints: c4673aa1) org.scala-lang:scala-reflect:2.13.12 (2 constraints: bb1d08f4) org.scala-lang.modules:scala-collection-compat_2.13:2.10.0 (1 constraints: 2a0b2af3) org.scala-lang.modules:scala-java8-compat_2.13:1.0.2 (1 constraints: fa0af8e7) @@ -429,10 +429,10 @@ com.amazonaws:aws-java-sdk-core:1.12.501 (2 constraints: b01a32b3) com.amazonaws:aws-java-sdk-kms:1.12.501 (1 constraints: 060dbd37) com.amazonaws:aws-java-sdk-s3:1.12.501 (1 constraints: 10136f43) com.amazonaws:jmespath-java:1.12.501 (2 constraints: b01a32b3) -com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.2 (2 constraints: ac195a13) -com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.17.2 (4 constraints: 6f485c36) -com.fasterxml.jackson.module:jackson-module-kotlin:2.17.2 (2 constraints: ab1d9860) -com.fasterxml.jackson.module:jackson-module-parameter-names:2.17.2 (2 constraints: 0e24bb82) +com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.0 (2 constraints: ab195b13) +com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.18.0 (4 constraints: 6e48dd35) +com.fasterxml.jackson.module:jackson-module-kotlin:2.18.0 (2 constraints: aa1d6d60) +com.fasterxml.jackson.module:jackson-module-parameter-names:2.18.0 (2 constraints: 0d248182) com.google.cloud:google-cloud-nio:0.127.20 (1 constraints: c90e267b) com.nimbusds:content-type:2.2 (1 constraints: d80b68eb) com.nimbusds:lang-tag:1.7 (1 constraints: dc0b6aeb) @@ -467,7 +467,7 @@ org.bouncycastle:bcutil-jdk18on:1.78.1 (1 constraints: c20d8144) org.freemarker:freemarker:2.3.32 (1 constraints: f00e9371) org.hdrhistogram:HdrHistogram:2.1.12 (1 constraints: 520d2029) org.hsqldb:hsqldb:2.7.2 (1 constraints: 0d050c36) -org.jetbrains.kotlin:kotlin-reflect:1.8.22 (2 constraints: 68241ee3) +org.jetbrains.kotlin:kotlin-reflect:1.8.22 (2 constraints: 6624c6e2) org.latencyutils:LatencyUtils:2.0.3 (1 constraints: 210dcd1b) org.mockito:mockito-core:5.12.0 (2 constraints: 3212891b) org.mockito:mockito-subclass:5.12.0 (1 constraints: 3a05473b) diff --git a/versions.props b/versions.props index 6be4f58bd36..e12d84300ed 100644 --- a/versions.props +++ b/versions.props @@ -5,7 +5,7 @@ com.adobe.testing:s3mock-junit4=2.17.0 com.carrotsearch.randomizedtesting:*=2.8.1 com.carrotsearch:hppc=0.10.0 com.cybozu.labs:langdetect=1.1-20120112 -com.fasterxml.jackson:jackson-bom=2.17.2 +com.fasterxml.jackson:jackson-bom=2.18.0 com.github.ben-manes.caffeine:caffeine=3.1.8 com.github.spotbugs:*=4.8.0 com.github.stephenc.jcip:jcip-annotations=1.0-1 From 0f4a46527c174d81c14c9022163c99f2bbaefe59 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Thu, 17 Oct 2024 08:03:09 -0400 Subject: [PATCH 04/67] SOLR-17489: CLI: Deprecate variations on solr urls options (#2756) Use --solr-url and --name consistently. --- .../java/org/apache/solr/cli/ExportTool.java | 30 +++++- .../org/apache/solr/cli/PostLogsTool.java | 30 +++++- .../java/org/apache/solr/cli/PostTool.java | 23 +++-- .../org/apache/solr/cli/RunExampleTool.java | 14 +-- .../org/apache/solr/cli/PostToolTest.java | 6 +- .../org/apache/solr/cli/TestExportTool.java | 6 +- .../solr/cloud/SolrCloudExampleTest.java | 6 +- solr/packaging/test/test_basic_auth.bats | 6 +- solr/packaging/test/test_export.bats | 2 +- solr/packaging/test/test_extraction.bats | 4 +- solr/packaging/test/test_post.bats | 11 +++ solr/packaging/test/test_snapshots.bats | 2 +- solr/packaging/test/test_ssl.bats | 2 +- .../prometheus/exporter/SolrExporter.java | 3 +- .../deployment-guide/pages/enabling-ssl.adoc | 2 +- .../indexing-guide/pages/post-tool.adoc | 98 +++++++------------ .../query-guide/pages/spatial-search.adoc | 2 +- 17 files changed, 152 insertions(+), 95 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/cli/ExportTool.java b/solr/core/src/java/org/apache/solr/cli/ExportTool.java index 957bd9a6df6..e2167c39091 100644 --- a/solr/core/src/java/org/apache/solr/cli/ExportTool.java +++ b/solr/core/src/java/org/apache/solr/cli/ExportTool.java @@ -54,6 +54,7 @@ import java.util.function.Consumer; import java.util.zip.GZIPOutputStream; import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.DeprecatedAttributes; import org.apache.commons.cli.Option; import org.apache.lucene.util.SuppressForbidden; import org.apache.solr.client.solrj.SolrClient; @@ -98,11 +99,22 @@ public List