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