[
https://issues.apache.org/jira/browse/SENTRY-1745?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vamsee Yarlagadda updated SENTRY-1745:
--------------------------------------
Status: Patch Available (was: Open)
> Bundle sentry-core-common into sentry-hdfs-dist to avoid NN failing with
> NoClassDefFoundError
> ---------------------------------------------------------------------------------------------
>
> Key: SENTRY-1745
> URL: https://issues.apache.org/jira/browse/SENTRY-1745
> Project: Sentry
> Issue Type: Bug
> Affects Versions: sentry-ha-redesign
> Reporter: Vamsee Yarlagadda
> Assignee: Vamsee Yarlagadda
> Labels: sentry-hdfs
>
> With the recent refactoring change
> [SENTRY-1639|https://issues.apache.org/jira/browse/SENTRY-1639], we
> introduced a new class SentryClientTransportConfigInterface. While trying to
> spin up a real cluster with this change, NN could fail to start with
> NoClassDefFoundError as we only put the jars under SENTRY_HOME/lib/plugins on
> the HDFS classpath and this new class is part of sentry-core-common which is
> not bundled inside plugins/.
> NN Error log:
> {code}
> May 2, 9:27:40.722 AM ERROR org.apache.hadoop.hdfs.server.namenode.NameNode
> Failed to start namenode.
> java.lang.NoClassDefFoundError:
> org/apache/sentry/core/common/transport/SentryClientTransportConfigInterface
> at
> org.apache.sentry.hdfs.SentryUpdater.getUpdates(SentryUpdater.java:41)
> at
> org.apache.sentry.hdfs.SentryAuthorizationInfo.update(SentryAuthorizationInfo.java:128)
> at
> org.apache.sentry.hdfs.SentryAuthorizationInfo.start(SentryAuthorizationInfo.java:212)
> at
> org.apache.sentry.hdfs.SentryAuthorizationProvider.start(SentryAuthorizationProvider.java:130)
> at
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startCommonServices(FSNamesystem.java:1203)
> at
> org.apache.hadoop.hdfs.server.namenode.NameNode.startCommonServices(NameNode.java:706)
> at
> org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:692)
> at
> org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:844)
> at
> org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:823)
> at
> org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1547)
> at
> org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1615)
> Caused by: java.lang.ClassNotFoundException:
> org.apache.sentry.core.common.transport.SentryClientTransportConfigInterface
> at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> ... 11 more
> {code}
> So, to avoid this we can bundle sentry-core-common as part of
> sentry-hdfs-dist.jar
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)