fixed deadlock between push and storage close
@@ -1784,7 +1784,12 @@ public class OStorageRemote extends OStorageAbstract implements OStorageProxy, O
}
public void updateStorageConfiguration(OStorageConfiguration storageConfiguration) {
+ if (status != STATUS.OPEN)
+ return;
stateLock.acquireWriteLock();
+ try {
+ if (status != STATUS.OPEN)
+ return;
this.configuration = storageConfiguration;
OCluster[] clusters = new OCluster[storageConfiguration.getClusters().size()];
for (OStorageClusterConfiguration clusterConfig : storageConfiguration.getClusters()) {
@@ -1801,7 +1806,7 @@ public class OStorageRemote extends OStorageAbstract implements OStorageProxy, O
}
}
}
- try {
+
this.clusters = clusters;
clusterMap.clear();
for (int i = 0; i < clusters.length; ++i) {
