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

ASF subversion and git services commented on GEODE-8847:
--------------------------------------------------------

Commit 9a46e7d89918c192c3edd5ff57dbfee078419883 in geode-native's branch 
refs/heads/develop from Alberto Gomez
[ https://gitbox.apache.org/repos/asf?p=geode-native.git;h=9a46e7d ]

GEODE-8847: Change boost::asio name resolution to synchronous (#726)

When creating a TCP connection and name resolution is needed, the
synchronous version of the boost::asio::ip::tcp::resolver class
is used instead of the asynchronous one.

The reason is that the asynchronous one does not offer any advantage
over the synchronous one because even if a timeout is set when
using the async one it is later required by the io_service to wait for the
thread launched by the asynchronous call to finish.

> Use boost::asio::ip::tcp::resolver::resolve method instead of the 
> asynchronous one
> ----------------------------------------------------------------------------------
>
>                 Key: GEODE-8847
>                 URL: https://issues.apache.org/jira/browse/GEODE-8847
>             Project: Geode
>          Issue Type: Improvement
>          Components: native client
>            Reporter: Alberto Gomez
>            Assignee: Alberto Gomez
>            Priority: Major
>              Labels: pull-request-available
>
> The async_resolve method of the boost::asio::ip::tcp::resolver class allows 
> to perform asynchronous calls for name resolution which would, in theory, 
> permit to add a timeout to the name resolution, useful when DNS calls take 
> long.
> In practice, it has been observed that this call creates a thread internally 
> and even if a timeout is set in the io_context run method and the call exits 
> at timeout, subsequent calls to run or the destruction of the io_context will 
> wait for the thread created by the async_resolve method to finish which 
> provokes that calls to the resolver can take longer than the timeout set.
> As a consequence, it is proposed to use the synchronous version of the method 
> (resolve) which makes the code simpler and does not lead to interpret that a 
> timeout out can be set to the name resolution.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to