[ https://issues.apache.org/jira/browse/AMBARI-22693?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Levas updated AMBARI-22693: ---------------------------------- Attachment: AMBARI-22693_branch-2.6.patch > 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 > > Attachments: AMBARI-22693_branch-2.6.patch > > > 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)