You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by no...@apache.org on 2023/07/05 12:17:09 UTC

[solr] branch main updated: SOLR-16861: Correct(override) MDC info for `CoordinatorHttpSolrCall` (#1753)

This is an automated email from the ASF dual-hosted git repository.

noble pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new 5a41ff0c94e SOLR-16861: Correct(override) MDC info for `CoordinatorHttpSolrCall` (#1753)
5a41ff0c94e is described below

commit 5a41ff0c94e0b3c584fe0bbc539b937519a1e5b5
Author: patsonluk <pa...@users.noreply.github.com>
AuthorDate: Wed Jul 5 05:17:04 2023 -0700

    SOLR-16861: Correct(override) MDC info for `CoordinatorHttpSolrCall` (#1753)
---
 .../solr/servlet/CoordinatorHttpSolrCall.java      | 23 +++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/servlet/CoordinatorHttpSolrCall.java b/solr/core/src/java/org/apache/solr/servlet/CoordinatorHttpSolrCall.java
index a9448d1310c..df95f712a4c 100644
--- a/solr/core/src/java/org/apache/solr/servlet/CoordinatorHttpSolrCall.java
+++ b/solr/core/src/java/org/apache/solr/servlet/CoordinatorHttpSolrCall.java
@@ -37,6 +37,7 @@ import org.apache.solr.common.util.Utils;
 import org.apache.solr.core.CoreContainer;
 import org.apache.solr.core.CoreDescriptor;
 import org.apache.solr.core.SolrCore;
+import org.apache.solr.logging.MDCLoggingContext;
 import org.apache.solr.request.DelegatingSolrQueryRequest;
 import org.apache.solr.request.LocalSolrQueryRequest;
 import org.apache.solr.request.SolrQueryRequest;
@@ -73,9 +74,11 @@ public class CoordinatorHttpSolrCall extends HttpSolrCall {
 
   public static SolrCore getCore(
       Factory factory, HttpSolrCall solrCall, String collectionName, boolean isPreferLeader) {
-    String sytheticCoreName = factory.collectionVsCoreNameMapping.get(collectionName);
-    if (sytheticCoreName != null) {
-      return solrCall.cores.getCore(sytheticCoreName);
+    String syntheticCoreName = factory.collectionVsCoreNameMapping.get(collectionName);
+    if (syntheticCoreName != null) {
+      SolrCore syntheticCore = solrCall.cores.getCore(syntheticCoreName);
+      setMDCLoggingContext(collectionName);
+      return syntheticCore;
     } else {
       ZkStateReader zkStateReader = solrCall.cores.getZkController().getZkStateReader();
       ClusterState clusterState = zkStateReader.getClusterState();
@@ -117,12 +120,26 @@ public class CoordinatorHttpSolrCall extends HttpSolrCall {
           addReplica(syntheticCollectionName, solrCall.cores);
           core = solrCall.getCoreByCollection(syntheticCollectionName, isPreferLeader);
         }
+        setMDCLoggingContext(collectionName);
         return core;
       }
       return null;
     }
   }
 
+  /**
+   * Overrides the MDC context as the core set was synthetic core, which does not reflect the
+   * collection being operated on
+   */
+  private static void setMDCLoggingContext(String collectionName) {
+    MDCLoggingContext.setCollection(collectionName);
+
+    // below is irrelevant for call to coordinator
+    MDCLoggingContext.setCoreName(null);
+    MDCLoggingContext.setShard(null);
+    MDCLoggingContext.setCoreName(null);
+  }
+
   private static void addReplica(String syntheticCollectionName, CoreContainer cores) {
     SolrQueryResponse rsp = new SolrQueryResponse();
     try {