ambari-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Hurley" <jhur...@hortonworks.com>
Subject Re: Review Request 41904: Adding A Removed Host Back To a Cluster Post-Upgrade Does Not Install New Stacks Correctly
Date Wed, 06 Jan 2016 16:33:01 GMT

-----------------------------------------------------------
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


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message