[freetds] tsql segfaults?

Drange, Bernt Andreas bernt.andreas.drange at imr.no
Thu Aug 19 03:14:26 EDT 2004


On Thu, 2004-08-19 at 01:00, James K. Lowden wrote:
> On Tue, 17 Aug 2004, "Drange, Bernt Andreas" <bernt.andreas.drange at imr.no>
> wrote:
> > I trying to install freetds on a redhat 7.0 system. The setup on this
> > box is a bit weird, but I actually managed to compile and install the
> > system, so I am a bit surprised to experience segfaults when trying to
> > start tsql. 
> 
> That can happen when you mis-specify the TDS version.  Turn on TDSDUMP;
> the top of the log will tell you where you're connecting to, and what
> protocol version you're using.  

I see. Well, what baffled me so was that I ran freetds without any
configuration of my own, with only the default config file - and with no
parameters. 

> > The version of unixODBC that is installed is really old, from 2001
> 
> See the README that came with your distribution.  As for tsql, of course
> it doesn't use ODBC, so that's not the immediate problem. 

Sure. I just figured compiling in --with-odbc might have something to do
with it. 

> > Is this all my fault or have I discovered som weird bug? I couldn't find
> > any 'system requirements' (regarding unixODBC or the like) on the
> > freetds website.. 
> 
> Good suggestion.  At least there should be pointer to the README.  The
> requirements change over time, and the website doesn't attempt to capture
> those changes.  

I see, I have now made a note to check the README file properly before
hitting a web page :) 

Turning on logging didn't give me any logs. I did it in both the config
files and with export TDSDUMP=/tmp/tds.log. 

Here is the output from systrace: 

[root at gnu etc]# strace tsql
execve("/usr/local/bin/tsql", ["tsql"], [/* 32 vars */]) = 0
uname({sys="Linux", node="gnu", ...})   = 0
brk(0)                                  = 0x804be40
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x40016000
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, 0xbfffeb0c)                  = -1 ENOSYS (Function not
implemented)
fstat(3, {st_mode=S_IFREG|0644, st_size=34053, ...}) = 0
old_mmap(NULL, 34053, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40017000
close(3)                                = 0
open("/usr/lib/libncurses.so.5", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\342\0"...,
1024) = 1024
fstat(3, {st_mode=S_IFREG|0755, st_size=257300, ...}) = 0
old_mmap(NULL, 270124, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0x40020000
mprotect(0x40056000, 48940, PROT_NONE)  = 0
old_mmap(0x40056000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
3, 0x35000) = 0x40056000
old_mmap(0x4005f000, 12076, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4005f000
close(3)                                = 0
open("/usr/lib/libreadline.so.4.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\240"...,
1024) = 1024
fstat(3, {st_mode=S_IFREG|0755, st_size=177545, ...}) = 0
old_mmap(NULL, 151920, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0x40062000
mprotect(0x40082000, 20848, PROT_NONE)  = 0
old_mmap(0x40082000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
3, 0x1f000) = 0x40082000
old_mmap(0x40087000, 368, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40087000
close(3)                                = 0
open("/usr/local/lib/libtds.so.3", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200Z\0"...,
1024) = 1024
fstat(3, {st_mode=S_IFREG|0755, st_size=593713, ...}) = 0
old_mmap(NULL, 208548, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0x40088000
mprotect(0x400b6000, 20132, PROT_NONE)  = 0
old_mmap(0x400b6000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
3, 0x2d000) = 0x400b6000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\303"...,
1024) = 1024
fstat(3, {st_mode=S_IFREG|0755, st_size=5725295, ...}) = 0
old_mmap(NULL, 1265832, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0x400bb000
mprotect(0x401e7000, 37032, PROT_NONE)  = 0
old_mmap(0x401e7000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
3, 0x12b000) = 0x401e7000
old_mmap(0x401ec000, 16552, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401ec000
close(3)                                = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x401f1000
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++

I don't know if that will help pinpointing what is wrong. I do hope
someone on this list can help me though! 

Cheers, Bernt

> --jkl
> _______________________________________________
> FreeTDS mailing list
> FreeTDS at lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/freetds
-- 
Bernt Andreas Drange
Institute of Marine Research
Tel:  +47 5523 8500 / Direct: +47 5523 6984
E-mail: post at imr.no / Direct: bernt.andreas.drange at imr.no



More information about the FreeTDS mailing list