Skip to Content.
Sympa Menu

freetds - Re: [freetds] Adding NVARCHAR columns causes ct_cancel (ctlib) to hang

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Frediano Ziglio <freddy77 AT gmail.com>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] Adding NVARCHAR columns causes ct_cancel (ctlib) to hang
  • Date: Sun, 18 Jan 2015 09:23:38 +0000

2015-01-16 22:17 GMT+00:00 Gregory Holtorf <gregory.holtorf AT gmail.com>:
> When calling ct_cancel in the freetds library, on unix, ct_cancel()
> sometimes takes several minutes to run. This is bad because it usually
> takes a few milliseconds to run. This bug works on freetds-0.91 and
> freetds-0.64 In order to reproduce the bug, I needed to:
>
> 1. Run a select statement on a large table
>
> 2. The table has to contain nvarchar columns. varchar columns do not
> trigger the bug.
>
> 3. The select statement must contain an order by clause
>
>
> select <nvarchar columns>
>
> from <table name>
>
> order by <nvarchar column>
>
>
> After completing the select statement, call ct_cancel(). For instance,
> before you make another select statement or when you log out.
>
> ct_cancel(m_pCtConnection, NULL, CS_CANCEL_ALL);
>
>
> When I turn on logging I can see that after I call ct_cancel() for the last
> time, it is followed by an absolutely huge number of packets received. I
> attached a log file, but I had to force quit the program or else the log
> file ends up being several thousand megabytes long.
>
> Is there a way to fix this issue? Is freetds unable to make select
> statements on nvarchar columns or is it something I did in my code?
>
>
> Thanks,
>
> Greg
>

Hi,
unfortunately is a server problem. Looking at the log FreeTDS
correctly send the cancel request but server does not process it in a
time fashion so at the end it output all results to client. The only
problem can raise from FreeTDS is the conversion from nvarchar(max) ->
ntext caused by protocol. You should try with git master version and
7.2 protocol.

Frediano




Archive powered by MHonArc 2.6.24.

Top of Page