[freetds] Adding NVARCHAR columns causes ct_cancel (ctlib) to hang
ikorot01 at gmail.com
Mon Jan 19 14:40:23 EST 2015
On Mon, Jan 19, 2015 at 1:57 PM, Gregory Holtorf
<gregory.holtorf at gmail.com> wrote:
> I download the master version at
> but that version apparently can't ./configure and make on unix (even
> though) some of the readme still says to do that. Is there a version that
> still works on unix?
Which OS you are working with?
What is an error message you received? Is it from configure or make?
How did you configure the library?
> On Sun, Jan 18, 2015 at 3:23 AM, Frediano Ziglio <freddy77 at gmail.com> wrote:
>> 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
>> > 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
>> 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.
>> FreeTDS mailing list
>> FreeTDS at lists.ibiblio.org
> FreeTDS mailing list
> FreeTDS at lists.ibiblio.org
More information about the FreeTDS