jbampton commented on a change in pull request #2136:
URL: https://github.com/apache/lucene-solr/pull/2136#discussion_r543243184



##########
File path: solr/core/src/java/org/apache/solr/schema/SchemaManager.java
##########
@@ -103,8 +104,9 @@ private List doOperations(List<CommandOperation> 
operations) throws InterruptedE
     String errorMsg = "Unable to persist managed schema. ";
     List errors = Collections.emptyList();
     int latestVersion = -1;
-
-    synchronized (req.getSchema().getSchemaUpdateLock()) {
+   Lock schemaChangeLock =  req.getSchema().getSchemaUpdateLock();

Review comment:
       ```suggestion
      Lock schemaChangeLock = req.getSchema().getSchemaUpdateLock();
   ```

##########
File path: solr/core/src/java/org/apache/solr/schema/SchemaManager.java
##########
@@ -454,8 +459,8 @@ private ManagedIndexSchema getFreshManagedSchema(SolrCore 
core) throws IOExcepti
       if (in instanceof ZkSolrResourceLoader.ZkByteArrayInputStream) {
         int version = ((ZkSolrResourceLoader.ZkByteArrayInputStream) 
in).getStat().getVersion();
         log.info("managed schema loaded . version : {} ", version);
-        return new ManagedIndexSchema(core.getSolrConfig(), name, new 
InputSource(in), true, name, version,
-            core.getLatestSchema().getSchemaUpdateLock());
+        Lock schemaLock =  (Lock) core.getLatestSchema().getSchemaUpdateLock();

Review comment:
       ```suggestion
           Lock schemaLock = (Lock) 
core.getLatestSchema().getSchemaUpdateLock();
   ```

##########
File path: 
solr/core/src/java/org/apache/solr/schema/ManagedIndexSchemaFactory.java
##########
@@ -178,9 +180,14 @@ public ManagedIndexSchema create(String resourceName, 
SolrConfig config) {
                                     managedSchemaResourceName, 
schemaZkVersion, getSchemaUpdateLock());
     if (shouldUpgrade) {
       // Persist the managed schema if it doesn't already exist
-      synchronized (schema.getSchemaUpdateLock()) {
+      Lock schemaUpdateLock =schema.getSchemaUpdateLock();

Review comment:
       ```suggestion
         Lock schemaUpdateLock = schema.getSchemaUpdateLock();
   ```

##########
File path: solr/core/src/java/org/apache/solr/schema/SchemaManager.java
##########
@@ -454,8 +459,8 @@ private ManagedIndexSchema getFreshManagedSchema(SolrCore 
core) throws IOExcepti
       if (in instanceof ZkSolrResourceLoader.ZkByteArrayInputStream) {
         int version = ((ZkSolrResourceLoader.ZkByteArrayInputStream) 
in).getStat().getVersion();
         log.info("managed schema loaded . version : {} ", version);
-        return new ManagedIndexSchema(core.getSolrConfig(), name, new 
InputSource(in), true, name, version,
-            core.getLatestSchema().getSchemaUpdateLock());
+        Lock schemaLock =  (Lock) core.getLatestSchema().getSchemaUpdateLock();
+        return new ManagedIndexSchema(core.getSolrConfig(), name, new 
InputSource(in), true, name, version,schemaLock );

Review comment:
       ```suggestion
           return new ManagedIndexSchema(core.getSolrConfig(), name, new 
InputSource(in), true, name, version, schemaLock );
   ```

##########
File path: solr/core/src/java/org/apache/solr/core/SolrCore.java
##########
@@ -3145,14 +3145,17 @@ public static Runnable getConfListener(SolrCore core, 
ZkSolrResourceLoader zkSol
           checkStale(zkClient, managedSchmaResourcePath, 
managedSchemaVersion)) {
         log.info("core reload {}", coreName);
         SolrConfigHandler configHandler = ((SolrConfigHandler) 
core.getRequestHandler("/config"));
-        if (configHandler.getReloadLock().tryLock()) {
-
+             if ((!core.schema.isMutable() || 
core.schema.getSchemaUpdateLock().tryLock())
+          && configHandler.getReloadLock().tryLock()) {
           try {
             cc.reload(coreName, coreId);
           } catch (SolrCoreState.CoreIsClosedException e) {
             /*no problem this core is already closed*/
           } finally {
             configHandler.getReloadLock().unlock();
+            if(core.schema.isMutable()){

Review comment:
       ```suggestion
               if (core.schema.isMutable()) {
   ```




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to