You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@sentry.apache.org by "Vamsee Yarlagadda (JIRA)" <ji...@apache.org> on 2017/05/02 03:36:04 UTC

[jira] [Updated] (SENTRY-1745) Bundle sentry-core-common into sentry-hdfs-dist to avoid NN failing with NoClassDefFoundError

     [ 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)