List:General Discussion« Previous MessageNext Message »
From:Dave Howorth Date:September 19 2003 9:52am
Subject:Fwd: MySQL segmentation faults...
View as plain text  
Jochen Wiedman asked that I post this stack trace.
Please cc me on any replies, as I'm not subscribed to the list.
The original problem description is at the end.

Cheers, Dave

-------- Original Message --------
Subject: Re: MySQL segmentation faults...
Date: Thu, 18 Sep 2003 20:59:57 +0200
From: Jochen Wiedmann <joe@stripped>
To: dhoworth@stripped
CC: perl@stripped
References: <200309171537.49105.jk@stripped> 
<3F699DBF.9040709@stripped> <3F69A69D.1030809@stripped>


Excellent stack trace, post this to the MySQL mailing list. It is a bug 
in the C driver.

Jochen


Dave Howorth wrote:

 > On the mysqlcc list Adam Hooper just wrote:
 >
 >> In general, running "strace <program>" will give some useful output;
 >> it'll give developers a good idea of where the problem is. Beyond
 >> that, a backtrace is useful. To produce one:
 >>
 >> 1. Run gdb <program> (gdb is available for EVERY distribution)
 >> 2. Type 'run'
 >> 3. Get a segfault. The window won't close, and gdb will pop up a
 >> warning of sorts.
 >> 4. Type 'bt' and email the output here :).
 >
 >
 > This seems like it might be relevant to diagnosing my
 > DBD::mysql::db::_login crash, so in the hope it may help ...
 >
 > The strace output is:
 >
 > open("/var/lib/mysql/my.cnf", O_RDONLY|O_LARGEFILE) = 3
 > fstat64(3, {st_mode=S_IFREG|0644, st_size=48, ...}) = 0
 > old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
 > -1, 0) = 0x4001a000
 > read(3, "# This file must exist - CAN-200"..., 4096) = 48
 > read(3, "", 4096)                       = 0
 > close(3)                                = 0
 > munmap(0x4001a000, 4096)                = 0
 > open("/home/dhoworth/.my.cnf", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No
 > such file or directory)
 > --- SIGSEGV (Segmentation fault) ---
 > +++ killed by SIGSEGV +++
 >
 > The gdb output is:
 >
 > Program received signal SIGSEGV, Segmentation fault.
 > 0x401cc030 in strcend () from /usr/lib/libmysqlclient.so.10
 > (gdb) bt
 > #0  0x401cc030 in strcend () from /usr/lib/libmysqlclient.so.10
 > #1  0x401bd922 in simple_command () from /usr/lib/libmysqlclient.so.10
 > #2  0x401be31d in mysql_real_connect () from 
/usr/lib/libmysqlclient.so.10
 > #3  0x4019ebd4 in mysql_dr_connect ()
 >    from /usr/lib/perl5/auto/DBD/mysql/mysql.so
 > #4  0x4019ef40 in mysql_dr_connect ()
 >    from /usr/lib/perl5/auto/DBD/mysql/mysql.so
 > #5  0x4019efb3 in mysql_db_login () from
 > /usr/lib/perl5/auto/DBD/mysql/mysql.so
 > #6  0x401a3114 in XS_DBD__mysql__db__login ()
 >    from /usr/lib/perl5/auto/DBD/mysql/mysql.so
 > #7  0x0809c70c in Perl_pp_entersub ()
 > #8  0x08097090 in Perl_runops_standard ()
 > #9  0x0805cdca in perl_call_sv ()
 > #10 0x0805c981 in perl_call_sv ()
 > #11 0x401910d1 in XS_DBI_dispatch () from /usr/lib/perl5/auto/DBI/DBI.so
 > #12 0x0809c70c in Perl_pp_entersub ()
 > #13 0x08097090 in Perl_runops_standard ()
 > #14 0x0805c565 in perl_run ()
 > #15 0x0805c2cb in perl_run ()
 > #16 0x08059ca0 in main ()
 > #17 0x4005b0bf in __libc_start_main () from /lib/libc.so.6
 >
 > HTH, Dave

==================================================================

Dave Howorth wrote:
 > I'm trying to use LOAD DATA and it is returning  Warnings: 12. I can't
 > use SHOW WARNINGS because I'm using mysql 3.23.49 since I'm on
 > Debian/Woody. A search of mysql list archives showed up a Perl script
 > called load_diag.pl by Paul Dubois that diagnoses problems in data files
 > so I've downloaded that.
 >
 > Sadly, it is crashing. When I run it like this:
 >
 > ~/bin/load_diag.pl -u dhoworth attributes attributes.txt
 >
 > it reports "Segmentation fault".  When I run it in the debugger it
 > reports "Aborted".  By single-stepping, I've tracked the failure to this
 > call:
 >
 > DBD::mysql::dr::connect(/usr/lib/perl5/DBD/mysql.pm:131):
 > 131:     DBD::mysql::db::_login($this, $dsn, $username, $password)
 > 132:       or $this = undef;
 >
 > It aborts when I try to single-step into it.
 >
 > perl is v5.6.1, examining the modules shows
 >
 > # $Id: DBI.pm,v 11.7 2002/02/07 03:00:53 timbo Exp $
 > $DBI::VERSION = 1.21; # ==> ALSO update the version in the pod text 
below!
 >
 > #   $Id: dbd.pm.in,v 1.6 1999/10/21 20:05:43 joe Exp $
 > $VERSION = '2.0416';
 >
 >
 > I've written a small Perl program to test my installation (see below)
 > and that works, as does the mysql client and mysqlcc, and I'm not sure
 > where to look next.
 >
 > All suggestions welcome.
 >
 > Thanks, Dave
 >
 >
 > ===========
 >
 > #!/usr/bin/perl
 > use strict;
 > use warnings;
 >
 > use DBI;
 >
 > my $dsn = 'dbi:mysql:t1';
 > my $user = 'dhoworth';
 > my $password = '';
 >
 > my $dbh = DBI->connect($dsn, $user, $password,
 >         { RaiseError => 1 });
 >
 > my $sth = $dbh->prepare('SELECT * FROM regions');
 >
 > $sth->execute();
 >
 > while (my @row = $sth->fetchrow_array)
 > {
 >  print "@row\n";
 > }

Thread
Fwd: MySQL segmentation faults...Dave Howorth19 Sep