----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/36779/#review92968 -----------------------------------------------------------
Ship it! Ship It! - Mahadev Konar On July 24, 2015, 1:05 p.m., Jonathan Hurley wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/36779/ > ----------------------------------------------------------- > > (Updated July 24, 2015, 1:05 p.m.) > > > Review request for Ambari, Alejandro Fernandez, Nate Cole, and Sumit Mohanty. > > > Bugs: AMBARI-12526 > https://issues.apache.org/jira/browse/AMBARI-12526 > > > Repository: ambari > > > Description > ------- > > When deploying a new cluster on SQL Azure, there is a recurring deadlock on > the SQL Server. > > Essentially, we have concurrent UPDATE statements in separate transactions > acting on different rows of hostcomponentstate. This seems to cause a > deadlock because both processes have an X lock and then try to acquire a U > lock. The U lock is what is making me think they are trying to acquire the > table lock in order to update the cluster index. > > The solution was to: > - Ensure that some of the failing transactions were placed within the scope > of our internal Java locks > - flush writing to the problem table > > > Diffs > ----- > > > ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListener.java > c016cbd > > ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentStateDAO.java > 00ffd5a > ambari-server/src/main/java/org/apache/ambari/server/state/Host.java > 7a53c21 > ambari-server/src/main/java/org/apache/ambari/server/state/Service.java > 1137cba > > ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponent.java > 60a16eb > > ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentHost.java > 6917a15 > > ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java > aa147de > ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java > 6484c9f > > ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java > 2b3bf05 > > ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClustersImpl.java > 90fdbec > > ambari-server/src/main/java/org/apache/ambari/server/state/configgroup/ConfigGroupImpl.java > a01f4d4 > > ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java > e59f4aa > > ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java > b623479 > > ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ServiceComponentHostConcurrentWriteDeadlockTest.java > PRE-CREATION > > Diff: https://reviews.apache.org/r/36779/diff/ > > > Testing > ------- > > Deployed on SQL Azure about 50 times and did not see the deadlock occur. It > would normally occur in the first 5 cluster deployments. > > > Thanks, > > Jonathan Hurley > >