Re: Multiple connection retries to the same IP address

Jan Blom <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <DB3PR05MB42813C200944612D1318B7DEE6B0@DB3PR05MB428.eurprd05.prod.outlook.com>
Excellent! Anything more I need to do?


Best regards,
Jan

-----Original Message-----
From: FreeTDS [mailto:[email protected]] On Behalf Of Frediano Ziglio
Sent: den 18 april 2016 20:00
To: FreeTDS Development Group
Subject: Re: [freetds] Multiple connection retries to the same IP address

2016-04-18 17:56 GMT+01:00 Jan Blom <[email protected]>:
> Hello,
>
> I'm using FreeTDS 0.95 and have been puzzled why the connection timeout setting seemed not to work. Digging into the problem I notice the same target IP address always appear three times, for instance looking at the config dump from osql. I have provided the fqdn name for the host in freetds.conf.
>
> The FreeTDS implementation will loop over all IP addresses when trying to connect if there is a failure. This results in a 3x total timeout duration compared to the configuration. I cannot see a good reason for this logic, given it is the same IP address in all three attempts.
>
> The reason is that the call to getaddrinfo (in tds/config.c) doesn't send in any preference regarding address type. Therefore we get back something like this:
>
> 1.
> Family        : AF_INET
> Type          : SOCK_STREAM
> Protocol      : IPPROTO_TCP
> Socket address: ('23.235.43.223', 0)
>
> 2.
> Family        : AF_INET
> Type          : SOCK_DGRAM
> Protocol      : IPPROTO_UDP
> Socket address: ('23.235.43.223', 0)
>
> 3.
> Family        : AF_INET
> Type          : SOCK_RAW
> Protocol      : IPPROTO_IP
> Socket address: ('23.235.43.223', 0)
>
> However, later on , when we actually connect the socket we will use SOCK_STREAM only. We don't care about UDP or raw sockets.
>
> My assumption would be that the tds_lookup_host() function should set
>                 hints.ai_socktype = SOCK_STREAM;
>
> This will result in only #1 above in return.
>
> Does this make sense or am I missing something here?
>
>
> Thanks for your time and support!
> Jan Blom
>


Make sense. It's just that the change was quite recent, previously we took into account just the first address so we didn't had this issue.
I think your suggestion should go as a patch.

Frediano
_______________________________________________
FreeTDS mailing list
[email protected]
http://lists.ibiblio.org/mailman/listinfo/freetds
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.