[
https://issues.apache.org/jira/browse/HADOOP-1589?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jim Kellerman updated HADOOP-1589:
----------------------------------
Attachment: patch.txt
Reworked error handling. We only catch IOExceptions instead of Exception and
only pass RemoteException to the (renamed)
RemoteExceptionHandler.decodeRemoteException which now either returns an
IOException (if the decoded exception is an instance or subclass of
IOException).
If the RemoteException cannot be decoded, the RemoteException is returned.
If the decoded exception was any other Throwable, the method throws a new
IOException whose message is "server error" and whose cause is the decoded
Throwable.
Tests run successfully in my environment. See if Hudson agrees.
> Exception handling in HBase is broken over client server connections
> --------------------------------------------------------------------
>
> Key: HADOOP-1589
> URL: https://issues.apache.org/jira/browse/HADOOP-1589
> Project: Hadoop
> Issue Type: Bug
> Components: contrib/hbase
> Affects Versions: 0.14.0, 0.15.0
> Reporter: Jim Kellerman
> Assignee: Jim Kellerman
> Fix For: 0.14.0, 0.15.0
>
> Attachments: patch.txt, patch.txt
>
>
> When an exception is thrown in a server process, the Hadoop Server class
> passes the exception class name and error message across the wire to the
> Hadoop Client. The Hadoop Client then throws a RemoteException with the class
> name and error message as part of its payload. Thus an interface like:
> public HRegionInfo getRegionInfo(final Text regionName) throws
> NotServingRegionException;
> actually throws a RemoteException on the client with
> org.apache.hadoop.hbase.NotServingRegionException as the class name and the
> remote message as the message.
> Anywhere in the HBase code where we try to catch NotServingRegionException
> will thus never see it if it came across an RPC.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.