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

Sudheesh Katkam commented on DRILL-5217:
----------------------------------------

Not reception of "pong" notification, but sending the "ping" notification.

The timer that sends the "ping" uses the same ioservice (for async_wait), and 
the ioservice is composed of 1 thread, which is essentially blocked. The 
mentioned (suggested) fix avoids the alternative, which is to create another 
thread that is only responsible for sending pings. Do you have suggestions?

> Heartbeat Fails when C++ client receives a large ResultSet
> ----------------------------------------------------------
>
>                 Key: DRILL-5217
>                 URL: https://issues.apache.org/jira/browse/DRILL-5217
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Client - C++
>            Reporter: Sudheesh Katkam
>            Priority: Critical
>
> If the listener thread is occupied for longer than 15 seconds (heartbeat 
> timeout) while [handling a message from the 
> drillbit|https://github.com/apache/drill/blob/master/contrib/native/client/src/clientlib/drillClientImpl.cpp#L1286]
>  e.g. [processing query data blocks if the query result listener's buffer is 
> full|https://github.com/apache/drill/blob/master/contrib/native/client/src/clientlib/drillClientImpl.cpp#L899],
>  heartbeats fail because the same thread is responsible for sending 
> heartbeats!
> Fix is to [handle long running 
> operations|http://stackoverflow.com/questions/17648725/long-running-blocking-operations-in-boost-asio-handlers]
>  separately using boost asio.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to