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:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]