This segfault occurs when using psqlodbc-07.03.0100 and DBI 1.35, with
postgresql 7.4beta4 and also 7.3.4. This is on i386 architecture with
Debian Linux.
In the log we have:
Oct 21 12:08:45 linda postgres[10923]: [2-1] LOG: connection received: host=127.0.0.1 port=42389
Oct 21 12:08:45 linda postgres[10923]: [3-1] LOG: connection authorized: user=olly database=bray
Oct 21 12:08:45 linda postgres[10923]: [4-1] LOG: unexpected EOF on client connection
I have not been able to trace the program because I haven't yet worked
out how to set breakpoints in a module loaded after the run command in
gdb.
$gdb perl
(gdb) set args -MDBI -e '$db=DBI->connect("dbi:ODBC:bray")'
(gdb) r
Starting program: /usr/bin/perl -MDBI -e '$db=DBI->connect("dbi:ODBC:bray")'
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...[New Thread 16384 (LWP 17780)]
(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 17780)]
SOCK_Destructor (self=0x53657267) at socket.c:91
91 if (self->socket != -1)
(gdb) bt full
#0 SOCK_Destructor (self=0x53657267) at socket.c:91
No locals.
#1 0x402f500b in CC_cleanup (self=0x82a3258) at connection.c:470
i = 136983128
stmt = (StatementClass *) 0x10
#2 0x402f46da in PGAPI_Disconnect (hdbc=0x82a3258) at connection.c:191
func = 0x4031b765 "PGAPI_Disconnect"
#3 0x40315de8 in SQLDisconnect (ConnectionHandle=0x82a3258) at odbcapi.c:232
ret = 16
#4 0x402241bf in odbc_db_disconnect () from /usr/lib/perl5/auto/DBD/ODBC/ODBC.so
No symbol table info available.
#5 0x4021becd in XS_DBD__ODBC__db_DESTROY ()
from /usr/lib/perl5/auto/DBD/ODBC/ODBC.so
No symbol table info available.
#6 0x4020680b in XS_DBI_dispatch () from /usr/lib/perl5/auto/DBI/DBI.so
No symbol table info available.
#7 0x080cd066 in Perl_pp_entersub ()
No symbol table info available.
#8 0x08063bdc in Perl_call_sv ()
No symbol table info available.
#9 0x080639b3 in Perl_call_sv ()
No symbol table info available.
#10 0x080d54b5 in Perl_sv_clear ()
No symbol table info available.
#11 0x080d5d00 in Perl_sv_free ()
No symbol table info available.
#12 0x080e1fb0 in Perl_sv_clean_objs ()
No symbol table info available.
#13 0x08061a03 in perl_destruct ()
No symbol table info available.
#14 0x0805f96d in main ()
No symbol table info available.
(gdb) p *self
$1 = {buffer_size = 0, buffer_filled_in = 0, buffer_filled_out = 0,
buffer_read_in = 0, buffer_in = 0x0, buffer_out = 0x0, socket = 0,
errormsg = 0x0, errornumber = 0, sadr = {sin_family = 0, sin_port = 0,
sin_addr = {s_addr = 0}, sin_zero = "\000\000\000\000\000\000\000"},
reverse = 0 '\0'}
(gdb)
debug output file attached
--
Oliver Elphick Oliver.Elphick@lfix.co.uk
Isle of Wight, UK http://www.lfix.co.uk/oliver
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
========================================
"If ye then be risen with Christ, seek those things
which are above, where Christ sitteth on the right
hand of God. Set your affection on things above, not
on things on the earth." Colossians 3:1,2