[
https://issues.apache.org/jira/browse/HIVE-22523?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16979550#comment-16979550
]
Slim Bouguerra commented on HIVE-22523:
---------------------------------------
as per the code will wait for 100ms then next round should exit if one of the
flags are set.
{code}
private void enqueueInternal(Object o) throws InterruptedException {
// We need to loop here to handle the case where consumer goes away.
do {} while (!isClosed && !isInterrupted && !queue.offer(o, 100,
TimeUnit.MILLISECONDS));
}
{code}
are you saying that in some cases the flags are not set or it is not visible to
the thread ?
> The error handler in LlapRecordReader might block if its queue is full
> ----------------------------------------------------------------------
>
> Key: HIVE-22523
> URL: https://issues.apache.org/jira/browse/HIVE-22523
> Project: Hive
> Issue Type: Bug
> Reporter: Attila Magyar
> Assignee: Attila Magyar
> Priority: Major
> Fix For: 4.0.0
>
> Attachments: HIVE-22523.1.patch
>
>
> InĀ setError() we set the value of an atomic reference (pendingError) and we
> also put the error in a queue. The latter seems not just unnecessary but it
> might block the caller of the handler if the queue is full. Also closing of
> the reader is might not properly handled as some of the flags are not
> volatile.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)