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

Ted Yu edited comment on HBASE-10029 at 11/26/13 3:52 AM:
----------------------------------------------------------

I wish there is something we can do HBase side ...
We should check whether the return value from Proxy.newProxyInstance() really 
implements Closeable.
Both DefaultFailoverProxyProvider and ConfiguredFailoverProxyProvider implement 
close(). So the detection cannot rely on Java.
If we call close() on the return value from Proxy.newProxyInstance() and catch 
exception, we should be able to tell.
When the test fails, we can either log a big warning or bail out.

This would help people track down the root cause faster than seeing exception 
when server is shutdown.


was (Author: [email protected]):
I think there is something we can do HBase side:
we should check whether the return value from Proxy.newProxyInstance() really 
implements Closeable.
If not we can either log a big warning or bail out.
This would help people track down the root cause faster than seeing exception 
when server is shutdown.

> Proxy created by HFileSystem#createReorderingProxy() should implement 
> Closeable when connect to HA namenode
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-10029
>                 URL: https://issues.apache.org/jira/browse/HBASE-10029
>             Project: HBase
>          Issue Type: Bug
>          Components: hadoop2
>    Affects Versions: 0.96.0
>            Reporter: Henry Hung
>
> HA namenode with QJM created from 
> org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider 
> should implement Closeable.
> [Mail 
> Archive|https://drive.google.com/file/d/0B22pkxoqCdvWSGFIaEpfR3lnT2M/edit?usp=sharing]
> {code}
> 13/11/26 09:55:55 ERROR ipc.RPC: RPC.stopProxy called on non proxy.
> java.lang.IllegalArgumentException: object is not an instance of declaring 
> class
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at 
> org.apache.hadoop.hbase.fs.HFileSystem$1.invoke(HFileSystem.java:266)
>         at $Proxy16.close(Unknown Source)
>         at org.apache.hadoop.ipc.RPC.stopProxy(RPC.java:621)
>         at 
> org.apache.hadoop.hdfs.DFSClient.closeConnectionToNamenode(DFSClient.java:738)
>         at org.apache.hadoop.hdfs.DFSClient.close(DFSClient.java:794)
>         at 
> org.apache.hadoop.hdfs.DistributedFileSystem.close(DistributedFileSystem.java:847)
>         at 
> org.apache.hadoop.fs.FileSystem$Cache.closeAll(FileSystem.java:2524)
>         at 
> org.apache.hadoop.fs.FileSystem$Cache$ClientFinalizer.run(FileSystem.java:2541)
>         at 
> org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:54)
> 13/11/26 09:55:55 WARN util.ShutdownHookManager: ShutdownHook 
> 'ClientFinalizer' failed, org.apache.hadoop.HadoopIllegalArgumentException: 
> Cannot close proxy - is not Closeable or does not provide closeable 
> invocation handler class $Proxy16
> org.apache.hadoop.HadoopIllegalArgumentException: Cannot close proxy - is not 
> Closeable or does not provide closeable invocation handler class $Proxy16
>         at org.apache.hadoop.ipc.RPC.stopProxy(RPC.java:639)
>         at 
> org.apache.hadoop.hdfs.DFSClient.closeConnectionToNamenode(DFSClient.java:738)
>         at org.apache.hadoop.hdfs.DFSClient.close(DFSClient.java:794)
>         at 
> org.apache.hadoop.hdfs.DistributedFileSystem.close(DistributedFileSystem.java:847)
>         at 
> org.apache.hadoop.fs.FileSystem$Cache.closeAll(FileSystem.java:2524)
>         at 
> org.apache.hadoop.fs.FileSystem$Cache$ClientFinalizer.run(FileSystem.java:2541)
>         at 
> org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:54)
> {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to