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

Rui Li commented on HIVE-14139:
-------------------------------

Thanks [~sershe] for the explanations. I agree performance is a valid concern. 
But not loading the resources leaves the system registry in a somehow 
inconsistent state: the function is registered in {{mFunctions}} but not in 
{{persistent}}, causing this NPE. If we think that is acceptable (although 
there's an assert to check this), maybe we can just ignore {{persistent}} if 
the function doesn't exist?
Or we can make {{persistent}} a  map from ClassName (instead of class) to 
RefCount? Would like to know your opinions, thanks.

> NPE dropping permanent function
> -------------------------------
>
>                 Key: HIVE-14139
>                 URL: https://issues.apache.org/jira/browse/HIVE-14139
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Rui Li
>            Assignee: Rui Li
>         Attachments: HIVE-14139.1.patch
>
>
> To reproduce:
> 1. Start a CLI session and create a permanent function.
> 2. Exit current CLI session.
> 3. Start a new CLI session and drop the function.
> Stack trace:
> {noformat}
> FAILED: error during drop function: java.lang.NullPointerException
>       at 
> org.apache.hadoop.hive.ql.exec.Registry.removePersistentFunctionUnderLock(Registry.java:513)
>       at 
> org.apache.hadoop.hive.ql.exec.Registry.unregisterFunction(Registry.java:501)
>       at 
> org.apache.hadoop.hive.ql.exec.FunctionRegistry.unregisterPermanentFunction(FunctionRegistry.java:1532)
>       at 
> org.apache.hadoop.hive.ql.exec.FunctionTask.dropPermanentFunction(FunctionTask.java:228)
>       at 
> org.apache.hadoop.hive.ql.exec.FunctionTask.execute(FunctionTask.java:95)
>       at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:197)
>       at 
> org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100)
>       at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1860)
>       at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1564)
>       at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1316)
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1085)
>       at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1073)
>       at 
> org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:232)
> {noformat}



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

Reply via email to