[ https://issues.apache.org/jira/browse/DRILL-5217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15836968#comment-15836968 ]
Sudheesh Katkam commented on DRILL-5217: ---------------------------------------- I meant that the client is occupied and unable to send pings, so the server closes the connection. I do not see logic for ensuring that pongs are received every so often. So what you said is also not handled (but maybe that was the contract). > 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)