----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/64853/#review194627 -----------------------------------------------------------
Ship it! Ship It! - Robert Nettleton On Dec. 27, 2017, 3:58 p.m., Robert Levas wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/64853/ > ----------------------------------------------------------- > > (Updated Dec. 27, 2017, 3:58 p.m.) > > > Review request for Ambari, Attila Magyar, Balázs Bence Sári, Eugene > Chekanskiy, Jonathan Hurley, Nate Cole, Robert Nettleton, and Sandor Molnar. > > > Bugs: AMBARI-22693 > https://issues.apache.org/jira/browse/AMBARI-22693 > > > Repository: ambari > > > 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 > ``` > 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 > ``` > > #Cause > In the following code snip, {{targetStackID}} is {null}}: > *`org/apache/ambari/server/serveraction/upgrades/UpgradeUserKerberosDescriptor.java:103`*: > ``` > StackId targetStackId = > getStackIdFromCommandParams(KeyNames.TARGET_STACK); > ``` > This causes the logic in `UpgradeUserKerberosDescriptor` to be skipped. > > #Solution > Change the code snip from above to > *`org/apache/ambari/server/serveraction/upgrades/UpgradeUserKerberosDescriptor.java:103`* > ``` > StackId targetStackId = cluster.getDesiredStackVersion(); > ``` > > NOTE: This has already been fixed in the trunk (Ambari 3.0.0). > > > Diffs > ----- > > > ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java > ffe2ed63d1 > > ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/UpgradeUserKerberosDescriptor.java > a8c254a3eb > > ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeUserKerberosDescriptorTest.java > 69d82b2ab4 > > > Diff: https://reviews.apache.org/r/64853/diff/1/ > > > Testing > ------- > > Manually tested upgrade and downgrade > > # Local test results: > ``` > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD SUCCESS > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 27:31 min > [INFO] Finished at: 2017-12-27T10:34:51-05:00 > [INFO] Final Memory: 71M/907M > [INFO] > ------------------------------------------------------------------------ > ``` > > # Jenkins test results: PENDING > > > Thanks, > > Robert Levas > >