Skip to Content.
Sympa Menu

freetds - Re: [freetds] Time out issue

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "ZIGLIO, Frediano, VF-IT" <Frediano.Ziglio AT vodafone.com>
  • To: "FreeTDS Development Group" <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] Time out issue
  • Date: Wed, 29 Nov 2006 08:48:50 +0100

>
> 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.
>
> Thanks,
> 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
inconsistent state.

Frediano





Archive powered by MHonArc 2.6.24.

Top of Page