[
https://issues.apache.org/jira/browse/SENTRY-1270?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15293983#comment-15293983
]
Sravya Tirukkovalur edited comment on SENTRY-1270 at 5/20/16 11:04 PM:
-----------------------------------------------------------------------
SENTRY-1260 handles the actual failure of malformed path during initialization,
and it gives complete details on the context: auth obj names, path etc.
In Sentry-1270, we do not have context of why initialization failed, but we
know that it failed. Correctness with respect to HDFS Sentry sync is today
actually all or none. So there is no question of consistency. Either sentry
acls will show up for all hive paths or none.
was (Author: sravya):
SENTRY-1260 handles the actual failure of malformed path during initialization,
and it gives complete details on the context: auth obj names, path etc.
In Sentry-1270, we do not have context of why intialization failed, but we know
that it failed. Correctness with respect to HDFS Sentry sync is today actually
all or none. So there is no questions of consistency. Either it works or not.
This message shows that it does not.
> Database with malformed URI causes NPE in HMS plugin during DDL
> ---------------------------------------------------------------
>
> Key: SENTRY-1270
> URL: https://issues.apache.org/jira/browse/SENTRY-1270
> Project: Sentry
> Issue Type: Bug
> Affects Versions: 1.7.0
> Reporter: Lenni Kuff
> Assignee: Sravya Tirukkovalur
> Attachments: SENTRY-1270.0.patch, SENTRY-1270.1.patch
>
>
> Exception:
> {code}
> Caused by: java.lang.NullPointerException
> at
> org.apache.sentry.hdfs.MetastorePlugin.applyLocal(MetastorePlugin.java:336)
> at
> org.apache.sentry.hdfs.MetastorePlugin.processUpdate(MetastorePlugin.java:364)
> at
> org.apache.sentry.hdfs.MetastorePlugin.notifySentryAndApplyLocal(MetastorePlugin.java:341)
> at
> org.apache.sentry.hdfs.MetastorePlugin.renameAuthzObject(MetastorePlugin.java:292)
> at
> org.apache.sentry.binding.metastore.SentryMetastorePostEventListener.renameSentryTablePrivilege(SentryMetastorePostEventListener.java:336)
> at
> org.apache.sentry.binding.metastore.SentryMetastorePostEventListener.onAlterTable(SentryMetastorePostEventListener.java:194)
> at
> org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.alter_table_core(HiveMetaStore.java:3439)
> ... 21 more
> {code}
> When looking in the HMS database we found:
> {code}
> SELECT "NAME", "DB_LOCATION_URI" FROM "DBS" WHERE NOT "DB_LOCATION_URI" LIKE
> 'hdfs://%/%';
> NAME | DB_LOCATION_URI
> -----------+--------------------
> db_name | hdfs://nameservice1
> (1 row)
> {code}
> Fixed by manually updating the HMS DB:
> {code}
> UPDATE DBS
> SET DB_LOCATION_URI='hdfs://nameservice1/user/hive/warehouse/db_name.db'
> WHERE DB_ID=12345;
> {code}
> We should handle this more gracefully in Sentry.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)