Skip to Content.
Sympa Menu

freetds - Re: [freetds] FreeTDS hangs when running a select

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Hildo Biersma <Hildo.Biersma AT morganstanley.com>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] FreeTDS hangs when running a select
  • Date: Tue, 08 Apr 2008 08:05:44 -0400

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 <jklowden AT freetds.org>
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
FreeTDS AT lists.ibiblio.org
http://lists.ibiblio.org/mailman/listinfo/freetds

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





Archive powered by MHonArc 2.6.24.

Top of Page