-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/39637/
-----------------------------------------------------------
(Updated Oct. 28, 2015, 10:33 a.m.)
Review request for Ambari, Jonathan Hurley, Nate Cole, Robert Nettleton, and
Sandor Magyari.
Changes
-------
Updated `filterParallelPerHostStages` to fix race contion where if multiple
reqeusts are in progress, stages in later requests may execute before stages in
earlier requests even if there is an intersection on hosts. This occurred
because multiple stage from each request were added to the filtered list,
skipping stages if intersections occured on hosts within the same request. The
skipped stages may have additional hosts that were not factored in when appling
rules to stages in later requests. Therefore it was possible for a START
command to be executed from a laster request when the INSTALL command from the
earilier request was not yet executed. This could happen if server-side actions
needed to occur between INIT and INSTALL stages from the earlier request.
Bugs: AMBARI-13550
https://issues.apache.org/jira/browse/AMBARI-13550
Repository: ambari
Description
-------
org.apache.ambari.server.actionmanager.ActionScheduler#filterParallelPerHostStages
should not filter out stages that contain server-side actions (to be executed
on the Ambari server host). This is because tasks in these stages are typically
required to complete before other stages on other hosts are executed.
For example while enabling Kerberos for an added service, principals and keytab
files need to be created before the stage to distribute the key tab files. The
principal and keytab file creation happens on the Ambari server (as server-side
actions) and the distribution tasks happen on the relevant hosts. If the
server-side stages are filtered out (in the event multiple stages are pending
for the Ambari server host), then one or more might be skipped and the
distribution task is queued. In this scenario, the distribution stage will
fail since the required keytab files will not have been created.
Diffs (updated)
-----
ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionScheduler.java
3f289b2
ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java
8b2703c
ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionScheduler.java
f8f9ce9
Diff: https://reviews.apache.org/r/39637/diff/
Testing
-------
Manually tested in cluster... testing kerberizing and rolling upgrades.
#Jenkins test results: PENDING
Thanks,
Robert Levas