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: "Xu Behoneo" <behoneox AT hotmail.com>
  • To: freetds AT lists.ibiblio.org
  • Subject: Re: [freetds] Time out issue
  • Date: Thu, 30 Nov 2006 12:08:01 +0800

Hi, Frediano

I understand that the client needs to receive a cancel reply from server, but assuming that there is a network failure or server down, it will block until everything works fine. I think this isn't a good behavior, of course return immediately isn't appropriate also. Maybe we can still specify the second select a timeout, and if it timeout also, then we can return.

Thanks,
Benheng


From: "ZIGLIO, Frediano, VF-IT" <Frediano.Ziglio AT vodafone.com>
Reply-To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
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

_______________________________________________
FreeTDS mailing list
FreeTDS AT lists.ibiblio.org
http://lists.ibiblio.org/mailman/listinfo/freetds

_________________________________________________________________
免费下载 MSN Explorer: http://explorer.msn.com/lccn/




Archive powered by MHonArc 2.6.24.

Top of Page