Skip to Content.
Sympa Menu

freetds - [freetds] bsqldb crashes, fisql does not give the desired results

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Frantisek Hanzlik <franta AT hanzlici.cz>
  • To: FreeTDS mailing list <freetds AT lists.ibiblio.org>
  • Subject: [freetds] bsqldb crashes, fisql does not give the desired results
  • Date: Wed, 02 Jul 2014 18:33:03 +0200

I'm absolute newbie in SQL, thus please forgive me if I do something
stupid.
I tried run this script (which is working fine with
\Program Files\Microsoft SQL Server\90\Tools\Binn\osql.exe
from MS SQL server 2005 on Windows 2003 server) :


--- script begin
declare
@CityOd varchar(10),
@CityDo varchar(10),
@datumStavu datetime

set @CityOd = 'ADAMOV'
set @CityDo = 'WIEN'
set @datumStavu = '2014-07-02'

create table #tmp(no_ varchar(20), up decimal(38,20),
s12 decimal(38,20), s14 decimal(38,20), s5416 decimal(38,20))
declare c cursor for
select No_, [Unit Price] from [MyDB$Item] k
where [Item Category Code] = 'E-SHOP'

declare @no varchar(20),
@up decimal(38,20),
@s12 decimal(38,20),
@s14 decimal(38,20),
@s5416 decimal(38,20)

open c
fetch c into @no, @up
while @@fetch_status=0
begin
SELECT @s12 = isnull(SUM([s12]),0),@s14=isnull(SUM([s14]),0) FROM
[MyDB$TBL1]
WITH (READUNCOMMITTED) WHERE (bucket=5 AND f2=@no AND
((f8>=@CityOd AND f8<=@CityDo)))
AND f3 < @datumStavu

SELECT @s5416=isnull(SUM([s5416]),0) FROM [MyDB$TBL2] WITH
(READUNCOMMITTED)
WHERE (bucket=6 AND f1=1 AND f5=2 AND f6=@no AND ((f7>=@CityOd AND
f7<=@CityDo)))
and f10 < @datumStavu

insert into #tmp values(@no, @up, @s12, @s14, @s5416)
fetch c into @no, @up
end
close c
deallocate c
select * from #tmp
drop table #tmp
go
--- script end

on bsqldb and fisql from freetds-0.91-6.gitf3ae29d.fc19.x86_64 on
Fedora 19 x86_64.

When I run bsqldb with params:
-i SQL -U user -P pwd -S sqlsrv -D test -t " " -e SQLerr -o SQLout -h -v

*** Error in `/bin/bsqldb': free(): invalid pointer: 0x000000000064ae00 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3b2607d0b8]
/lib64/libsybdb.so.5(dbnextrow+0x369)[0x3ec820e1b9]
/bin/bsqldb[0x40308b]
/bin/bsqldb[0x4022a2]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x3b26021b45]
/bin/bsqldb[0x402431]
======= Memory map: ========
00400000-00406000 r-xp 00000000 09:01 1736030
/usr/bin/bsqldb
00605000-00606000 r--p 00005000 09:01 1736030
/usr/bin/bsqldb
00606000-0060a000 rw-p 00006000 09:01 1736030
/usr/bin/bsqldb
0060a000-0064f000 rw-p 00000000 00:00 0
[heap]
3974200000-3974279000 r-xp 00000000 09:01 1707453
/usr/lib64/libfreebl3.so
3974279000-3974478000 ---p 00079000 09:01 1707453
/usr/lib64/libfreebl3.so
...
7ffff1ab2000-7ffff7fd7000 r--p 00000000 09:01 1734848
/usr/lib/locale/locale-archive
7ffff7fd7000-7ffff7fe3000 rw-p 00000000 00:00 0
7ffff7ff1000-7ffff7ff4000 rw-p 00000000 00:00 0
7ffff7ff4000-7ffff7ffb000 r--s 00000000 09:01 1734941
/usr/lib64/gconv/gconv-modules.cache
7ffff7ffb000-7ffff7ffd000 rw-p 00000000 00:00 0
7ffff7ffd000-7ffff7fff000 r-xp 00000000 00:00 0
[vdso]
7ffffffde000-7ffffffff000 rw-p 00000000 00:00 0
[stack]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0
[vsyscall]

Program received signal SIGABRT, Aborted.
0x0000003b260359e9 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);

And stack backtrace is:
#0 0x0000003b260359e9 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x0000003b260370f8 in __GI_abort () at abort.c:90
#2 0x0000003b26075d17 in __libc_message (do_abort=do_abort@entry=2,
fmt=fmt@entry=0x3b2617e568 "*** Error in `%s': %s: 0x%s ***\n") at
../sysdeps/unix/sysv/linux/libc_fatal.c:196
#3 0x0000003b2607d0b8 in malloc_printerr (ptr=<optimized out>,
str=0x3b2617bc75 "free(): invalid pointer", action=3) at malloc.c:4937
#4 _int_free (av=0x3b263ba780 <main_arena>, p=<optimized out>, have_lock=0)
at malloc.c:3789
#5 0x0000003ec820e1b9 in buffer_add_row (resinfo=0x614440, dbproc=0x6133c0)
at buffering.h:500
#6 dbnextrow (dbproc=dbproc@entry=0x6133c0) at dblib.c:2071
#7 0x000000000040308b in print_results (dbproc=dbproc@entry=0x6133c0) at
bsqldb.c:535
#8 0x00000000004022a2 in main (argc=<optimized out>, argv=0x7fffffffe508) at
bsqldb.c:210



When I tried run this SQL script with 'fisql' with params:
-i SQL -U user -P pwd -S sqlsrv -D test -e SQLerr -o SQLout -w 65500 -n

then program run seemingly without error, but SQLout output is weird:

no_
up s12 s14 s5416
--------------------------------------------------------------------------------
-- --- --- -----
DB-LIBRARY error:
Data conversion resulted in overflow
Operating-system error:
Success
K2030446
-- --- --- -----
DB-LIBRARY error:
Data conversion resulted in overflow
Operating-system error:
Success
K2030457
-- --- --- -----
DB-LIBRARY error:
Data conversion resulted in overflow
Operating-system error:
Success
K2030469
-- --- --- -----
DB-LIBRARY error:
Data conversion resulted in overflow
Operating-system error:
Success
K2030471
-- --- --- -----
...


Can anyone advise me what I'm doing wrong?

Thanks in advance, Franta Hanzlik





Archive powered by MHonArc 2.6.24.

Top of Page