Re: FreeTDS hangs when running a select

Hildo Biersma <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Organization Morgan Stanley
Message-ID <[email protected]>
Brian Johnson wrote:
> We have a Windows system on the same network that uses the same firewall
> going through the same VPN tunnel.  The Windoze system works great (returns
> all the rows).  But both linux systems choke.  I'm truely stumped.  The log
> created when setting TDSDUMP did indeed seem to indicate that there was no
> problem, data just stopped flowing.  I also looked into the ODBC logs, and
> there was no clues there either.
> 
> Any ideas?  Any where I can point a finger and say, "Aha!  I have something
> to update!"?
> 
> For the record, I did try compiling .82RC4 but saw the same results.  So I
> am thinking you must be correct in that it's not FreeTDS.  :(

Check the selective ACK (SACK) network setting on your Linux system.  If 
you have a bad firewall, turning off SACK may help.

> 
> -Brian
> 
> On Mon, Apr 7, 2008 at 1:03 PM, James K. Lowden <[email protected]>
> wrote:
> 
>> Brian Johnson wrote:
>>> Let me start by saying that the following numbers are somewhat made up,
>>> but demonstrate the problem accurately.  Anyway, lets say we have a
>>> table with 5 columns, and 100 rows.  If we do a "select * from foo", we
>>> would expect to get 100 rows returned.  We don't.  Instead we get say 25
>>> rows, and the select hangs.  I can print out the results of those 25
>>> rows in perl, but the 26th row never gets returned.
>>>
>>> So, we modified the select to be "SELECT col1 FROM foo", and we got all
>>> 100 rows of that column.  So we did "SELECT col1, col2 FROM foo", and
>>> then we got 75 rows and it hung.  So we tried "SELECT col1, col2, col3"
>>> FROM foo", and ended up getting 50 rows.
>>>
>>> Of course, the numbers were not so nice and round.  As for how we are
>>> connecting, I have tried DSN and DNS-less connections with dbi::ODBC,
>>> and of course have tried with sqsh.  For sqsh I added an entry to
>>> freetds.conf, and then ran sqsh -S ENTRYNAME -U USER -P PASS.  I was
>>> able to do very small selects, but any time I did a select that returned
>>> large numbers of rows it hung.
>> There's nothing in FreeTDS that would explain what you're seeing.  It sure
>> sounds to me like there's something on your network -- perhaps a firewall?
>> Some sort of traffic shaper? -- between you and your server.
>>
>> You can use TDSDUMP to create a log of the session and show it to your
>> network folks.  I think you'll see the server seems to stop sending in
>> mid-packet.  If you can show a successful log with the old server, that
>> might convince them to track it down.
>>
>> HTH.
>>
>> --jkl
>> _______________________________________________
>> FreeTDS mailing list
>> [email protected]
>> http://lists.ibiblio.org/mailman/listinfo/freetds
>>
> _______________________________________________
> FreeTDS mailing list
> [email protected]
> http://lists.ibiblio.org/mailman/listinfo/freetds
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.