List:General Discussion« Previous MessageNext Message »
From:Dave Howorth Date:September 19 2003 9:58am
Subject:[Fwd: 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";
  > }


-- 
Dave Howorth
MRC Centre for Protein Engineering
Hills Road, Cambridge, CB2 2QH
01223 252960

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