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 <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
CC: [EMAIL PROTECTED]
References: <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
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";
> }
-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]