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