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

László Bodor commented on HIVE-29802:
-------------------------------------

merged to master, thanks [~gfarkas]  for the patch!

> ProactiveEviction fails with InvalidACLException in Kerberos-enabled 
> environments when LLAP daemons are not running
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-29802
>                 URL: https://issues.apache.org/jira/browse/HIVE-29802
>             Project: Hive
>          Issue Type: Bug
>          Components: llap
>            Reporter: Gergely Farkas
>            Assignee: Gergely Farkas
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 4.3.0
>
>
> When Hive is configured with Kerberos authentication 
> (hive.zookeeper.kerberos.enabled=true) and no LLAP daemons have started yet, 
> DDL operations such as DROP DATABASE fail with an unhandled RuntimeException.
> Root cause:
> HS2 connects to ZooKeeper without SASL authentication 
> ({{LlapZookeeperRegistryImpl}} passes {{saslLoginContextName=null}} for 
> non-daemon clients). When no LLAP daemons are registered, the ZK paths (e.g. 
> {{/llap-sasl/user-hive}}) do not exist. The {{PathChildrenCache}} (configured 
> with {{setCreateParentNodes=true}}) attempts to create them using 
> {{CREATOR_ALL_ACL}}, which requires an authenticated identity. ZooKeeper 
> rejects this with {{InvalidACLException}}. 
> {{ZkRegistryBase.ensureInstancesCache()}} wraps this as a generic 
> {{IOException}}, which propagates up through {{ProactiveEviction.evict()}} as 
> an uncaught {{RuntimeException}}, causing the calling DDL operation to fail.
> Expected behavior:
> If no LLAP daemons are registered, proactive cache eviction should be a no-op 
> - there is nothing cached to evict.
> Stack trace:
> {noformat}
>   java.lang.RuntimeException: java.io.IOException: 
> org.apache.zookeeper.KeeperException$InvalidACLException: KeeperErrorCode = 
> InvalidACL for /llap-sasl/user-hive
>       at 
> org.apache.hadoop.hive.llap.ProactiveEviction.evict(ProactiveEviction.java:...)
>       ...
>   Caused by: org.apache.zookeeper.KeeperException$InvalidACLException: 
> KeeperErrorCode = InvalidACL for /llap-sasl/user-hive
>         at org.apache.curator.utils.ZKPaths.mkdirs(ZKPaths.java:...)
> {noformat}
> Proposed fix:
> 1. Introduce a {{ClusterNotReadyException}} (extends {{IOException}}) thrown 
> by {{ZkRegistryBase.ensureInstancesCache()}} when the cluster is not ready 
> due to {{InvalidACLException}}.
> 2. Catch {{ClusterNotReadyException}} in {{ProactiveEviction.evict()}} and 
> return silently.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to