Dmitry Lysnichenko created AMBARI-13634:
-------------------------------------------
Summary: Express Upgrade: HDP 2.2 -> HDP 2.3 upgrade blocked on
Updating configuration ranger-hdfs-policymgr-ssl
Key: AMBARI-13634
URL: https://issues.apache.org/jira/browse/AMBARI-13634
Project: Ambari
Issue Type: Bug
Reporter: Dmitry Lysnichenko
Assignee: Dmitry Lysnichenko
Attachments: AMBARI-13634.patch
HDP 2.2 -> HDP 2.3 express upgrade gets blocked at step "Updating configuration
ranger-hdfs-policymgr-ssl".
{noformat}
java.lang.NullPointerException
at
org.apache.ambari.server.serveraction.upgrades.ConfigureAction.execute(ConfigureAction.java:232)
at
org.apache.ambari.server.serveraction.ServerActionExecutor$Worker.execute(ServerActionExecutor.java:537)
at
org.apache.ambari.server.serveraction.ServerActionExecutor$Worker.run(ServerActionExecutor.java:474)
at java.lang.Thread.run(Thread.java:745)
{noformat}
The NPE is because _ranger-hdfs-policymgr-ssl_ is a new config type in HDP 2.3
and so the desiredconfig returned in _ConfigureAction_ is null as this
config-type does not exist.
{code}
Map<String, DesiredConfig> desiredConfigs = cluster.getDesiredConfigs();
DesiredConfig desiredConfig = desiredConfigs.get(configType);
Config config = cluster.getConfig(configType, desiredConfig.getTag());
{code}
Following difference in _UpgradeResourceProvider.java_ between RU and EU seems
to be the root cause
{code}
/**
During a Rolling Upgrade, change the desired Stack Id if jumping across
major stack versions (e.g., HDP 2.2 -> 2.3), and then set config changes
so they are applied on the newer stack.
During a {@link UpgradeType.NON_ROLLING} upgrade, the stack is applied during
the middle of the upgrade (after
stopping all services), and the configs are applied immediately before starting
the services.
The Upgrade Pack is responsible for calling {@link
org.apache.ambari.server.serveraction.upgrades.UpdateDesiredStackAction}
at the appropriate moment during the orchestration.
**/
if (pack.getType() == UpgradeType.ROLLING) {
// Desired configs must be set before creating stages because the config tag
// names are read and set on the command for filling in later
applyStackAndProcessConfigurations(targetStackId.getStackName(), cluster,
version, direction, pack);
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)