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)

Reply via email to