[freetds] Time out issue
ZIGLIO, Frediano, VF-IT
Frediano.Ziglio at vodafone.com
Wed Nov 29 02:48:50 EST 2006
> Hi, all
> When I use the FreeTDS with unixODBC, I have a timeout
> problem, I'm not sure whether this is a bug.
> The issue is in the "tds_goodread" function(src/tds/net.c),
> when the "select" function returns because of timeout, the
> "len" variable will be set to 0, and it will go into the "if"
> section, in that, a query timeout function will be called,
> without dblib, this function will always be
> "query_timeout_cancel" function(src/odbc/odbc.c), and it set
> the timeout of the tds socket to 0 and returns
> "TDS_INT_CANCEL", so that in the former "if" section, a
> cancel packet is sent, but it still in the loop and call
> select again, but at this time, the timeout value is 0 and
> select will wait forever.
> I think after called the "tds_send_cancel" call, it should
> return immediately.
> Benheng Xu
No, the behavior is correct. Assuming you send a query that take a lot
of time, when timeout is reached you send cancel request and you have to
wait for DONE with cancel reply from server. You cannot return
immediately cause you break server syncro so you would end up in an
More information about the FreeTDS