hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hari Sankar Sivarama Subramaniyan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-13608) We should provide better error message while constraints with duplicate names are created
Date Wed, 04 May 2016 08:04:12 GMT

    [ https://issues.apache.org/jira/browse/HIVE-13608?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15270289#comment-15270289
] 

Hari Sankar Sivarama Subramaniyan commented on HIVE-13608:
----------------------------------------------------------

[~ashutoshc] I looked at this option. I am a +0 for this idea of parsing the error message
to see if it matches some string and prevent the retry altogether.

{code}
else if ((t instanceof MetaException) && t.getMessage().matches(
            "(?s).*(JDO[a-zA-Z]*|TProtocol|TTransport)Exception.*")) {
          caughtException = (MetaException)t;
        } 
{code} 
This can make the man-in-the-middle attack scenario with the current system worse. I realize
why the above code was added in the first place to tackle JDO*/T* exceptions which are unrecoverable
otherwise, but still this whole thing is hacky and adding more parsing messages here will
worsen the existing code.

For practical purpose, the change you mentioned should be ok and I can upload the patch, but
as I said, this is something that needs to be revisited to increase the security of the product.

Thanks
Hari

> We should provide better error message while constraints with duplicate names are created
> -----------------------------------------------------------------------------------------
>
>                 Key: HIVE-13608
>                 URL: https://issues.apache.org/jira/browse/HIVE-13608
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Hari Sankar Sivarama Subramaniyan
>            Assignee: Hari Sankar Sivarama Subramaniyan
>         Attachments: HIVE-13608.1.patch
>
>
> {code}
> PREHOOK: query: create table t1(x int, constraint pk1 primary key (x) disable novalidate)
> PREHOOK: type: CREATETABLE
> PREHOOK: Output: database:default
> PREHOOK: Output: default@t1
> POSTHOOK: query: create table t1(x int, constraint pk1 primary key (x) disable novalidate)
> POSTHOOK: type: CREATETABLE
> POSTHOOK: Output: database:default
> POSTHOOK: Output: default@t1
> PREHOOK: query: create table t2(x int, constraint pk1 primary key (x) disable novalidate)
> PREHOOK: type: CREATETABLE
> PREHOOK: Output: database:default
> PREHOOK: Output: default@t2
> FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:For
direct MetaStore DB connections, we don't support retries at the client level.)
> {code}
> In the above case, it seems like useful error message is lost. It looks like a  generic
problem with metastore server/client exception handling and message propagation. Seems like
exception parsing logic of RetryingMetaStoreClient::invoke() needs to be updated.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message