[ 
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)

Reply via email to