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

(Updated July 18, 2015, 4:44 a.m.)


Review request for Ambari, Alejandro Fernandez, Jonathan Hurley, Mahadev Konar, 
Myroslav Papirkovskyy, and Sumit Mohanty.


Changes
-------

I just realized a global initialize breaks multi cluster support, of course 
this is not currently something we support fully but I decided to take into 
account your suggestion as well, this code shold only execute initilize once, 
the unit test for changing JMX port works with this patch. Will run full suite 
on Monday.


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


Repository: ambari


Description
-------

The high level picture seems to be: Requests made from the UI for host metrics 
trying to figure out the actual metrics service and the code that updates 
in-memory maps which hold information of where that service is and what ports 
to use to connect to it etc. These property maps are update by Observers on 
important events like Cluster/Service/Host CRUD by resetting a volatile 
variable.

The contention occurs due the thread that actually enters the monitor 
protecting the volatile var and asks for another lock on the cluster which is 
held by some other thread which also needs a value from the in-memory maps and 
waits on the object monitor that it cannot enter.

Note: Web based deployments get away because not a lot of CRUD ops happen in 
parallel to Reads like the use case of monitoring the Blueprint deploy as the 
cluster is being provisioned.


Diffs (updated)
-----

  
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java
 380a0fe 

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


Testing
-------

All unit test passed.


Thanks,

Sid Wagle

Reply via email to