[
https://issues.apache.org/jira/browse/HIVE-14091?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15352006#comment-15352006
]
Siddharth Seth edited comment on HIVE-14091 at 6/27/16 11:06 PM:
-----------------------------------------------------------------
The main change here is to close the socket in case of an exception, correct?
and hope that this causes the InputStream read to return immediately - since
the interrupt does not work. Afaik - this is best effort - and there's a
comment in the patch which indicates the same.
This will cause any reads on the InputStream to fail - likely with a
ClosedChannelException (or equivalent). Do we need to handle this in a specific
manner in the reader code - at least to indicate the kind of error so that
debugging is easier.
Mostly unrelated to this jira.
{code}
case ERROR:
throw new IOException("Received reader event error: " +
event.getMessage());
default:
throw new IOException("Got reader event type " +
event.getEventType() + ", expected error event");
{code}
This gets rid of the original exception. Would be worth propagating the
exception further up, or at least logging it.
I don't think the addition of taskFailed on the Responder is required. This
will be invoked in any case when the Umbilical heartbeat implementation invokes
responder.heartbeat. (adding the method implies the error being sent twice to
the responder)
Should the socket also be cleaned up during ReaderBase.close()
was (Author: sseth):
The main change here is to close the socket in case of an exception, correct?
and hope that this causes the InputStream read to return immediately - since
the interrupt does not work. Afaik - this is best effort - and there's a
comment in the patch which indicates the same.
This will cause any reads on the InputStream to fail - likely with a
ClosedChannelException (or equivalent). Do we need to handle this in a specific
manner in the reader code - at least to indicate the kind of error so that
debugging is easier.
Mostly unrelated to this jira.
{code}
case ERROR:
throw new IOException("Received reader event error: " +
event.getMessage());
default:
throw new IOException("Got reader event type " +
event.getEventType() + ", expected error event");
{code}
This gets rid of the original exception. Would be worth propagating the
exception further up, or at least logging it.
I don't think the addition of taskFailed on the Responder is required. This
will be invoked in any case when the Umbilical heartbeat implementation invokes
responder.heartbeat. (adding the method implies the error being sent twice to
the responder)
Should the socket also be cleaned up during ReaderBase.close()
Kind of related to the patch.
{code}
> some errors are not propagated to LLAP external clients
> -------------------------------------------------------
>
> Key: HIVE-14091
> URL: https://issues.apache.org/jira/browse/HIVE-14091
> Project: Hive
> Issue Type: Bug
> Reporter: Jason Dere
> Assignee: Sergey Shelukhin
> Attachments: HIVE-14091.patch
>
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)