-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/41904/
-----------------------------------------------------------
(Updated Jan. 6, 2016, 11:33 a.m.)
Review request for Ambari, Alejandro Fernandez, Jayush Luniya, and Nate Cole.
Changes
-------
So the scenario pointed out was valid; if you distribute new bits for
2.3.9.9-9999 but you don't upgrade, then installing a new service on
2.3.0.0-0000 will trigger a bad hdp-select set all in the after-INSTALL hook.
The solution is to use the actual version if available. The only time it's not
available is during bootstrap, and then it's safe to use 2.3*
Bugs: AMBARI-14543
https://issues.apache.org/jira/browse/AMBARI-14543
Repository: ambari
Description
-------
1) cluster with hdp 2.3.2 and c6401 and c6402
2) install hdp 2.3.4 on all hosts
3) delete host from the cluster, c6401
4) perform upgrade
5) c6402 is now running hdp 2.3.4
6) add c6401 back in (remember: is has 2.3.2 and 2.3.4 installed, with
hdp-select pointing to 2.3.2)
7) the host gets added back in but it does not get switched to the current
running cluster version of 2.3.4. The c6401 host is still pointing to hdp 2.3.2
On add, the host should have been moved to 2.3.4 to match the rest of the
cluster. Instead, it was left on 2.3.2, which now it's running a different
version than the rest of my cluster.
What happens is that we never call hdp-select during a normal install of a
component - only during an upgrade. If you think about it, when you're on HDP
2.2 and you install HDP 2.3, you don't want to call hdp-select yet since you're
not ready to start running HDP 2.3.
So when you add a host back which had a prior version of HDP and then a new
version side-installed, the pointers are still to the old versions. Nothing
will move them since that host didn't go through the upgrade. If the host
didn't have HDP on it when it was added back, that would prevent this problem.
A workaround is to invoke hdp-select set all <version> on the re-added host.
A fix for this might be to invoke hdp-select after installing a service on a
host.
Diffs (updated)
-----
ambari-common/src/main/python/resource_management/libraries/functions/hdp_select.py
7d90dca
ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariActionExecutionHelper.java
2a8fde1
ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/after-INSTALL/scripts/params.py
d7b18eb
ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/after-INSTALL/scripts/shared_initialization.py
85bfbde
ambari-server/src/test/python/stacks/2.0.6/hooks/after-INSTALL/test_after_install.py
4d5c0c2
Diff: https://reviews.apache.org/r/41904/diff/
Testing
-------
mvn clean test
Thanks,
Jonathan Hurley