-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31273/
-----------------------------------------------------------

Review request for Ambari, Mahadev Konar, Nate Cole, and Tom Beerbower.


Bugs: AMBARI-9738
    https://issues.apache.org/jira/browse/AMBARI-9738


Repository: ambari


Description
-------

During provisioning of a cluster, a deadlock scenario can occur between 
{{ClusterImpl}} and {{ClustersImpl}}.

{noformat}
Thread-1
  Clusters.mapHostsToCluster (writeLock)
    Cluster.refresh (writeLock)
    
Thread-2
  Cluster.convertToResponse (readLock)
    Clusters.getHost (readLock)
    
Thread-1   Clusters.mapHostsToCluster (writeLock)
Thread-2   Cluster.convertToResponse (readLock)
Thread-1   Cluster.refresh (writeLock)  (BLOCKED by Thread-2)
Thread-2   Clusters.getHost (readLock) (BLOCKED by Thread-1)
{noformat}


Diffs
-----

  
ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
 8589182 
  
ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClustersImpl.java
 97ac2be 
  
ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersDeadlockTest.java
 PRE-CREATION 

Diff: https://reviews.apache.org/r/31273/diff/


Testing
-------

Unit tests written before code fix to verify the deadlock could be reproduced. 
Deployed a clean cluster.

Tests run: 2724, Failures: 0, Errors: 0, Skipped: 15

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13:55 min
[INFO] Finished at: 2015-02-21T17:45:45-05:00
[INFO] Final Memory: 32M/371M
[INFO] ------------------------------------------------------------------------


Thanks,

Jonathan Hurley

Reply via email to