You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2021/01/20 08:56:00 UTC

[jira] [Commented] (GEODE-8847) Use boost::asio::ip::tcp::resolver::resolve method instead of the asynchronous one

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

ASF GitHub Bot commented on GEODE-8847:
---------------------------------------

albertogpz opened a new pull request #726:
URL: https://github.com/apache/geode-native/pull/726


   …ynchronous
   
   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.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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