----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/45519/#review126236 -----------------------------------------------------------
ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java (line 429) <https://reviews.apache.org/r/45519/#comment189154> This is the actual fix. ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java (line 2012) <https://reviews.apache.org/r/45519/#comment189153> This is the actual fix. ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java (line 1173) <https://reviews.apache.org/r/45519/#comment189155> Notice how this queries the DB to find the upgrade in progress and then determines which version to use. In trunk, I will use the setUpgradeEntity and getUpgradeEntity methods that cache the UpgradeEntity currently in progress. For branch-2.2, I wanted to keep it simple. ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java (line 1218) <https://reviews.apache.org/r/45519/#comment189156> This relies on these string constants, which I think is ok. Ideally, we would have added a marker to the upgrade table for which version to use, but this approach works just as well. - Alejandro Fernandez On March 31, 2016, 1:37 a.m., Alejandro Fernandez wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/45519/ > ----------------------------------------------------------- > > (Updated March 31, 2016, 1:37 a.m.) > > > Review request for Ambari, Dmytro Grinenko, Dmitro Lisnichenko, Jonathan > Hurley, Jayush Luniya, and Nate Cole. > > > Bugs: AMBARI-15637 > https://issues.apache.org/jira/browse/AMBARI-15637 > > > Repository: ambari > > > Description > ------- > > Currently, if RU/EU is paused, then restarting services manually will use the > version whose state is CURRENT. This means that services may be restarted on > the wrong version, preventing Ambari from correctly Finalizing the upgrade. > Instead, the logic should be as follows during Upgrade: > RU: always use to_version > EU: if haven't completed the action "UPDATE_DESIRED_STACK_ID", then use the > from_version, otherwise, use the to_version. > > During Downgrade, both should use the original version, which is actually the > to_version column in the upgrade table. > > THIS CODE REVIEW IS FOR BRANCH-2.2, I WILL CREATE A DIFFERENT ONE FOR TRUNK. > > > Diffs > ----- > > > ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java > 1767b02 > > ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java > dd66dcc > > ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java > ec49364 > > ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java > ef8a8d4 > > ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java > 5c8b7f3 > > ambari-server/src/main/java/org/apache/ambari/server/orm/dao/UpgradeDAO.java > 06f6ac1 > > ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostRoleCommandEntity.java > a12b204 > > ambari-server/src/main/java/org/apache/ambari/server/orm/entities/UpgradeEntity.java > fd866a1 > ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java > b49f566 > > ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java > 3493508 > > Diff: https://reviews.apache.org/r/45519/diff/ > > > Testing > ------- > > Verified it worked, still waiting for unit test results. > > Assertions: > A: restart a service (should have version parameter, > B: run a service check (no version needed) > C: run HDFS Rebalance (should have version parameter). > > Test Cases: > 1. Before stack upgrade, run A, B, and C, which should all use the current > version > 2. EU, immediately click pause. Run A, B, and C, which should use the > original version if it exists > 3. EU, after the services have been stopped and the stack has been upgraded. > Run A, B, and C, which should use the new version since the services are now > to be started. > 4. EU, click downgrade and pause. Run A, B, C, which should use the original > version. > 5. RU, click pause whenever a manual task occurs. Run A, B, and C, which > should use the destination version. > 6. RU, click downgrade. Run A, B, and C, which should use the original > version. > > > Thanks, > > Alejandro Fernandez > >