You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ambari.apache.org by "Robert Levas (JIRA)" <ji...@apache.org> on 2017/12/22 21:18:00 UTC

[jira] [Updated] (AMBARI-22693) UpgradeUserKerberosDescriptor is not executed during stack upgrade due to missing target stack data

     [ https://issues.apache.org/jira/browse/AMBARI-22693?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Levas updated AMBARI-22693:
----------------------------------
    Description: 
UpgradeUserKerberosDescriptor is not executed during stack upgrade due to missing target stack data.

*Steps to reproduce*
# Deploy cluster with Ambari version 2.6.0 and HDP version 2.4
** Storm should be installed to guarantee an error
# Do Express upgrade to HDP version 2.6
# Regenerate Keytabs.

Upon restarting Storm the following error is encountered
{code:java}
Exception in thread "main" java.lang.ExceptionInInitializerError
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at clojure.lang.RT.classForName(RT.java:2154)
	at clojure.lang.RT.classForName(RT.java:2163)
	at clojure.lang.RT.loadClassForName(RT.java:2182)
	at clojure.lang.RT.load(RT.java:436)
	at clojure.lang.RT.load(RT.java:412)
	at clojure.core$load$fn__5448.invoke(core.clj:5866)
	at clojure.core$load.doInvoke(core.clj:5865)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invoke(core.clj:5671)
	at clojure.core$load_lib$fn__5397.invoke(core.clj:5711)
	at clojure.core$load_lib.doInvoke(core.clj:5710)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invoke(core.clj:632)
	at clojure.core$load_libs.doInvoke(core.clj:5749)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invoke(core.clj:632)
	at clojure.core$require.doInvoke(core.clj:5832)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at org.apache.storm.daemon.nimbus$loading__5340__auto____982.invoke(nimbus.clj:16)
	at org.apache.storm.daemon.nimbus__init.load(Unknown Source)
	at org.apache.storm.daemon.nimbus__init.<clinit>(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at clojure.lang.RT.classForName(RT.java:2154)
	at clojure.lang.RT.classForName(RT.java:2163)
	at clojure.lang.RT.loadClassForName(RT.java:2182)
	at clojure.lang.RT.load(RT.java:436)
	at clojure.lang.RT.load(RT.java:412)
	at clojure.core$load$fn__5448.invoke(core.clj:5866)
	at clojure.core$load.doInvoke(core.clj:5865)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.lang.Var.invoke(Var.java:379)
	at org.apache.storm.daemon.nimbus.<clinit>(Unknown Source)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: backtype.storm.security.auth.KerberosPrincipalToLocal
	at org.apache.storm.security.auth.AuthUtils.GetPrincipalToLocalPlugin(AuthUtils.java:125)
	at org.apache.storm.security.auth.authorizer.ImpersonationAuthorizer.prepare(ImpersonationAuthorizer.java:54)
	at org.apache.storm.daemon.common$mk_authorization_handler.invoke(common.clj:417)
	at org.apache.storm.ui.core__init.load(Unknown Source)
	at org.apache.storm.ui.core__init.<clinit>(Unknown Source)
	... 35 more
Caused by: java.lang.ClassNotFoundException: backtype.storm.security.auth.KerberosPrincipalToLocal
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at org.apache.storm.security.auth.AuthUtils.GetPrincipalToLocalPlugin(AuthUtils.java:121)
	... 39 more
{code}

*Cause*
In the following code snip, {{targetStackID}} is {null}}:
{code:title=org/apache/ambari/server/serveraction/upgrades/UpgradeUserKerberosDescriptor.java:103}
        StackId targetStackId = getStackIdFromCommandParams(KeyNames.TARGET_STACK);
{code}

This causes the logic in  {{UpgradeUserKerberosDescriptor}} to be skipped.  

*Solution*
Change the code snip from above to 
{code:title=org/apache/ambari/server/serveraction/upgrades/UpgradeUserKerberosDescriptor.java:103}
        StackId targetStackId = cluster.getDesiredStackVersion();
{code}

NOTE: This has already been fixed in the trunk (Ambari 3.0.0).



  was:
UpgradeUserKerberosDescriptor is not executed during stack upgrade due to missing target stack data.

*Steps to reproduce*
# Deploy cluster with Ambari version 2.6.0 and HDP version 2.4
** Storm should be installed to guarantee an error
# Do Express upgrade to HDP version 2.6
# Regenerate Keytabs.

Upon restarting Storm the following error is encountered
{code:java}
Exception in thread "main" java.lang.ExceptionInInitializerError
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at clojure.lang.RT.classForName(RT.java:2154)
	at clojure.lang.RT.classForName(RT.java:2163)
	at clojure.lang.RT.loadClassForName(RT.java:2182)
	at clojure.lang.RT.load(RT.java:436)
	at clojure.lang.RT.load(RT.java:412)
	at clojure.core$load$fn__5448.invoke(core.clj:5866)
	at clojure.core$load.doInvoke(core.clj:5865)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invoke(core.clj:5671)
	at clojure.core$load_lib$fn__5397.invoke(core.clj:5711)
	at clojure.core$load_lib.doInvoke(core.clj:5710)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invoke(core.clj:632)
	at clojure.core$load_libs.doInvoke(core.clj:5749)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invoke(core.clj:632)
	at clojure.core$require.doInvoke(core.clj:5832)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at org.apache.storm.daemon.nimbus$loading__5340__auto____982.invoke(nimbus.clj:16)
	at org.apache.storm.daemon.nimbus__init.load(Unknown Source)
	at org.apache.storm.daemon.nimbus__init.<clinit>(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at clojure.lang.RT.classForName(RT.java:2154)
	at clojure.lang.RT.classForName(RT.java:2163)
	at clojure.lang.RT.loadClassForName(RT.java:2182)
	at clojure.lang.RT.load(RT.java:436)
	at clojure.lang.RT.load(RT.java:412)
	at clojure.core$load$fn__5448.invoke(core.clj:5866)
	at clojure.core$load.doInvoke(core.clj:5865)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.lang.Var.invoke(Var.java:379)
	at org.apache.storm.daemon.nimbus.<clinit>(Unknown Source)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: backtype.storm.security.auth.KerberosPrincipalToLocal
	at org.apache.storm.security.auth.AuthUtils.GetPrincipalToLocalPlugin(AuthUtils.java:125)
	at org.apache.storm.security.auth.authorizer.ImpersonationAuthorizer.prepare(ImpersonationAuthorizer.java:54)
	at org.apache.storm.daemon.common$mk_authorization_handler.invoke(common.clj:417)
	at org.apache.storm.ui.core__init.load(Unknown Source)
	at org.apache.storm.ui.core__init.<clinit>(Unknown Source)
	... 35 more
Caused by: java.lang.ClassNotFoundException: backtype.storm.security.auth.KerberosPrincipalToLocal
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at org.apache.storm.security.auth.AuthUtils.GetPrincipalToLocalPlugin(AuthUtils.java:121)
	... 39 more
{code}

*Cause*
In the following code snip, {{targetStackID}} is {null}}:
{code:title=org/apache/ambari/server/serveraction/upgrades/UpgradeUserKerberosDescriptor.java:103}
        StackId targetStackId = getStackIdFromCommandParams(KeyNames.TARGET_STACK);
{code}

This causes the logic in  {{UpgradeUserKerberosDescriptor}} to be skipped.  

*Solution*
Change the code snip from above to 
{code:title=org/apache/ambari/server/serveraction/upgrades/UpgradeUserKerberosDescriptor.java:103}
        StackId targetStackId = cluster.getDesiredStackVersion();
{code}





> UpgradeUserKerberosDescriptor is not executed during stack upgrade due to missing target stack data
> ---------------------------------------------------------------------------------------------------
>
>                 Key: AMBARI-22693
>                 URL: https://issues.apache.org/jira/browse/AMBARI-22693
>             Project: Ambari
>          Issue Type: Bug
>          Components: ambari-server
>    Affects Versions: 2.6.0, 2.6.1
>            Reporter: Robert Levas
>            Assignee: Robert Levas
>            Priority: Critical
>             Fix For: 2.6.2
>
>
> UpgradeUserKerberosDescriptor is not executed during stack upgrade due to missing target stack data.
> *Steps to reproduce*
> # Deploy cluster with Ambari version 2.6.0 and HDP version 2.4
> ** Storm should be installed to guarantee an error
> # Do Express upgrade to HDP version 2.6
> # Regenerate Keytabs.
> Upon restarting Storm the following error is encountered
> {code:java}
> Exception in thread "main" java.lang.ExceptionInInitializerError
> 	at java.lang.Class.forName0(Native Method)
> 	at java.lang.Class.forName(Class.java:348)
> 	at clojure.lang.RT.classForName(RT.java:2154)
> 	at clojure.lang.RT.classForName(RT.java:2163)
> 	at clojure.lang.RT.loadClassForName(RT.java:2182)
> 	at clojure.lang.RT.load(RT.java:436)
> 	at clojure.lang.RT.load(RT.java:412)
> 	at clojure.core$load$fn__5448.invoke(core.clj:5866)
> 	at clojure.core$load.doInvoke(core.clj:5865)
> 	at clojure.lang.RestFn.invoke(RestFn.java:408)
> 	at clojure.core$load_one.invoke(core.clj:5671)
> 	at clojure.core$load_lib$fn__5397.invoke(core.clj:5711)
> 	at clojure.core$load_lib.doInvoke(core.clj:5710)
> 	at clojure.lang.RestFn.applyTo(RestFn.java:142)
> 	at clojure.core$apply.invoke(core.clj:632)
> 	at clojure.core$load_libs.doInvoke(core.clj:5749)
> 	at clojure.lang.RestFn.applyTo(RestFn.java:137)
> 	at clojure.core$apply.invoke(core.clj:632)
> 	at clojure.core$require.doInvoke(core.clj:5832)
> 	at clojure.lang.RestFn.invoke(RestFn.java:408)
> 	at org.apache.storm.daemon.nimbus$loading__5340__auto____982.invoke(nimbus.clj:16)
> 	at org.apache.storm.daemon.nimbus__init.load(Unknown Source)
> 	at org.apache.storm.daemon.nimbus__init.<clinit>(Unknown Source)
> 	at java.lang.Class.forName0(Native Method)
> 	at java.lang.Class.forName(Class.java:348)
> 	at clojure.lang.RT.classForName(RT.java:2154)
> 	at clojure.lang.RT.classForName(RT.java:2163)
> 	at clojure.lang.RT.loadClassForName(RT.java:2182)
> 	at clojure.lang.RT.load(RT.java:436)
> 	at clojure.lang.RT.load(RT.java:412)
> 	at clojure.core$load$fn__5448.invoke(core.clj:5866)
> 	at clojure.core$load.doInvoke(core.clj:5865)
> 	at clojure.lang.RestFn.invoke(RestFn.java:408)
> 	at clojure.lang.Var.invoke(Var.java:379)
> 	at org.apache.storm.daemon.nimbus.<clinit>(Unknown Source)
> Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: backtype.storm.security.auth.KerberosPrincipalToLocal
> 	at org.apache.storm.security.auth.AuthUtils.GetPrincipalToLocalPlugin(AuthUtils.java:125)
> 	at org.apache.storm.security.auth.authorizer.ImpersonationAuthorizer.prepare(ImpersonationAuthorizer.java:54)
> 	at org.apache.storm.daemon.common$mk_authorization_handler.invoke(common.clj:417)
> 	at org.apache.storm.ui.core__init.load(Unknown Source)
> 	at org.apache.storm.ui.core__init.<clinit>(Unknown Source)
> 	... 35 more
> Caused by: java.lang.ClassNotFoundException: backtype.storm.security.auth.KerberosPrincipalToLocal
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> 	at java.lang.Class.forName0(Native Method)
> 	at java.lang.Class.forName(Class.java:264)
> 	at org.apache.storm.security.auth.AuthUtils.GetPrincipalToLocalPlugin(AuthUtils.java:121)
> 	... 39 more
> {code}
> *Cause*
> In the following code snip, {{targetStackID}} is {null}}:
> {code:title=org/apache/ambari/server/serveraction/upgrades/UpgradeUserKerberosDescriptor.java:103}
>         StackId targetStackId = getStackIdFromCommandParams(KeyNames.TARGET_STACK);
> {code}
> This causes the logic in  {{UpgradeUserKerberosDescriptor}} to be skipped.  
> *Solution*
> Change the code snip from above to 
> {code:title=org/apache/ambari/server/serveraction/upgrades/UpgradeUserKerberosDescriptor.java:103}
>         StackId targetStackId = cluster.getDesiredStackVersion();
> {code}
> NOTE: This has already been fixed in the trunk (Ambari 3.0.0).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)