Bug #7288 Segmentation fault (mysql-administrator)
Submitted: 14 Dec 2004 17:23 Modified: 15 Dec 2004 11:16
Reporter: Jo Willson Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Administrator Severity:S1 (Critical)
Version:1.0.17a OS:Linux (Linux)
Assigned to: CPU Architecture:Any

[14 Dec 2004 17:23] Jo Willson
Description:
Hi,  
  
In "Backup", when I click "New Project" it segfaults.  
When I start mysql-administrator again, "Project" was added in Backup. If I click on it, it  
segfaults. When I start again "Project_1" was addded, it segfaults when I click on it, and so  
on.  
  
I have tried recompiling with CFLAGS="-O2", its the same.  
GCC version: 3.4.3  
  
Here is the complete strace output on segfault:  
  
$ strace mysql-administrator  
execve("/usr/bin/mysql-administrator", ["mysql-administrator"], [/* 59 vars */]) = 0  
uname({sys="Linux", node="tux", ...})   = 0  
brk(0)                                  = 0x8107000  
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)  
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =  
0xb7fff000  
open("/etc/ld.so.cache", O_RDONLY)      = 3  
fstat64(3, {st_mode=S_IFREG|0644, st_size=141839, ...}) = 0  
mmap2(NULL, 141839, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fdc000  
close(3)                                = 0  
open("/lib/libdl.so.2", O_RDONLY)       = 3  
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\215cI"..., 512) = 512  
fstat64(3, {st_mode=S_IFREG|0755, st_size=10936, ...}) = 0  
mmap2(0x49638000, 11288, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,  
0) = 0x49638000  
mmap2(0x4963a000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED| 
MAP_DENYWRITE, 3, 0x1) = 0x4963a000  
close(3)                                = 0  
open("/lib/tls/libc.so.6", O_RDONLY)    = 3  
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0&4RI4\0"..., 512) = 512  
fstat64(3, {st_mode=S_IFREG|0755, st_size=1274708, ...}) = 0  
mmap2(0x4950e000, 1210444, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE,  
3, 0) = 0x4950e000  
mmap2(0x49630000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED| 
MAP_DENYWRITE, 3, 0x121) = 0x49630000  
mmap2(0x49633000, 10316, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED| 
MAP_ANONYMOUS, -1,0) = 0x49633000  
close(3)                                = 0  
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =  
0xb7fdb000  
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7fdb6c0, limit:1048575,  
seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0,  
useable:1}) = 0  
munmap(0xb7fdc000, 141839)              = 0  
open("/dev/urandom", O_RDONLY)          = 3  
read(3, "\'\207U\277", 4)               = 4  
close(3)                                = 0  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3  
close(3)                                = 0  
brk(0)                                  = 0x8107000  
brk(0x8128000)                          = 0x8128000  
getuid32()                              = 1000  
getgid32()                              = 1000  
geteuid32()                             = 1000  
getegid32()                             = 1000  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
time(NULL)                              = 1103044218  
open("/etc/mtab", O_RDONLY)             = 3  
fstat64(3, {st_mode=S_IFREG|0644, st_size=569, ...}) = 0  
mmap2(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)  
= 0xb7fef000  
read(3, "/dev/md0 / reiser4 rw,noatime 0 "..., 65536) = 569  
close(3)                                = 0  
munmap(0xb7fef000, 65536)               = 0  
open("/proc/meminfo", O_RDONLY)         = 3  
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0  
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =  
0xb7ffe000  
read(3, "MemTotal:       904632 kB\nMemFre"..., 1024) = 598  
close(3)                                = 0  
munmap(0xb7ffe000, 4096)                = 0  
rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0  
rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0  
rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0  
rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0  
rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 8) = 0  
rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 8) = 0  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0  
uname({sys="Linux", node="tux", ...})   = 0  
stat64("/home/charlie", {st_mode=S_IFDIR|0750, st_size=187, ...}) = 0  
stat64(".", {st_mode=S_IFDIR|0750, st_size=187, ...}) = 0  
getpid()                                = 16547  
getppid()                               = 16546  
getpgrp()                               = 16546  
rt_sigaction(SIGCHLD, {0x807fe00, [], 0}, {SIG_DFL}, 8) = 0  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
open("/usr/bin/mysql-administrator", O_RDONLY|O_LARGEFILE) = 3  
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfffdc38) = -1 ENOSYS (Function not  
implemented)  
_llseek(3, 0, [0], SEEK_CUR)            = 0  
read(3, "#!/bin/sh\n\nMYPATH=`dirname \"$0\"`"..., 80) = 80  
_llseek(3, 0, [0], SEEK_SET)            = 0  
getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0  
dup2(3, 255)                            = 255  
close(3)                                = 0  
fcntl64(255, F_SETFD, FD_CLOEXEC)       = 0  
fcntl64(255, F_GETFL)                   = 0x8000 (flags O_RDONLY|O_LARGEFILE)  
fstat64(255, {st_mode=S_IFREG|0755, st_size=125, ...}) = 0  
_llseek(255, 0, [0], SEEK_CUR)          = 0  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
read(255, "#!/bin/sh\n\nMYPATH=`dirname \"$0\"`"..., 125) = 125  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
pipe([3, 4])                            = 0  
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0  
_llseek(255, -92, [33], SEEK_CUR)       = 0  
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,  
child_tidptr=0xb7fdb708) = 16548  
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0  
rt_sigaction(SIGCHLD, {0x807fe00, [], 0}, {0x807fe00, [], 0}, 8) = 0  
close(4)                                = 0  
read(3, "/usr/bin\n", 128)              = 9  
--- SIGCHLD (Child exited) @ 0 (0) ---  
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG) = 16548  
waitpid(-1, 0xbfffd254, WNOHANG)        = -1 ECHILD (No child processes)  
sigreturn()                             = ? (mask now [])  
read(3, "", 128)                        = 0  
close(3)                                = 0  
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0  
rt_sigaction(SIGINT, {0x807e3ef, [], 0}, {SIG_DFL}, 8) = 0  
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0  
rt_sigaction(SIGINT, {SIG_DFL}, {0x807e3ef, [], 0}, 8) = 0  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
read(255, "\nBASEPATH=`cd $MYPATH/.. ; pwd`\n"..., 125) = 92  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
pipe([3, 4])                            = 0  
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0  
_llseek(255, -60, [65], SEEK_CUR)       = 0  
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,  
child_tidptr=0xb7fdb708) = 16549  
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0  
rt_sigaction(SIGCHLD, {0x807fe00, [], 0}, {0x807fe00, [], 0}, 8) = 0  
close(4)                                = 0  
read(3, "/usr\n", 128)                  = 5  
--- SIGCHLD (Child exited) @ 0 (0) ---  
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG) = 16549  
waitpid(-1, 0xbfffd254, WNOHANG)        = -1 ECHILD (No child processes)  
sigreturn()                             = ? (mask now [])  
read(3, "", 128)                        = 0  
close(3)                                = 0  
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0  
rt_sigaction(SIGINT, {0x807e3ef, [], 0}, {SIG_DFL}, 8) = 0  
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0  
rt_sigaction(SIGINT, {SIG_DFL}, {0x807e3ef, [], 0}, 8) = 0  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
read(255, "\nexport MA_DIR=$BASEPATH\n\n$MYPAT"..., 125) = 60  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0  
_llseek(255, -1, [124], SEEK_CUR)       = 0  
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,  
child_tidptr=0xb7fdb708) = 16550  
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0  
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0  
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0  
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0  
rt_sigaction(SIGINT, {0x807e3ef, [], 0}, {SIG_DFL}, 8) = 0  
waitpid(-1, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV}], 0) = 16550  
fstat64(2, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0  
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =  
0xb7ffe000  
write(2, "/usr/bin/mysql-administrator: li"..., 100/usr/bin/mysql-administrator: line 9:  
16550 Segmentation fault      $MYPATH/mysql-administrator-bin  
) = 100  
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0  
--- SIGCHLD (Child exited) @ 0 (0) ---  
waitpid(-1, 0xbfffd44c, WNOHANG)        = -1 ECHILD (No child processes)  
sigreturn()                             = ? (mask now [])  
rt_sigaction(SIGINT, {SIG_DFL}, {0x807e3ef, [], 0}, 8) = 0  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
read(255, "\n", 125)                    = 1  
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0  
read(255, "", 125)                      = 0  
munmap(0xb7ffe000, 4096)                = 0  
exit_group(139)                         = ?  
  

How to repeat:
In "Backup", click "New Project" it segfaults.  
Then, when starting mysql-administrator again, "Project" is added in Backup. If you click on it, 
it segfaults. When you start again "Project_1" is addded, it segfaults when you click on it, and 
so on.
[15 Dec 2004 11:16] Hartmut Holzgraefe
Not enough information was provided for us to be able
to handle this bug. Please re-read the instructions at
http://bugs.mysql.com/how-to-report.php

If you can provide more information, feel free to add it
to this bug and change the status back to 'Open'.

Thank you for your interest in MySQL.

Additional info:

I coultn't reproduce this while testing on SuSE 9.0,
can you please add distribution details to this report?
[16 Dec 2004 0:30] Jo Willson
I' using Gentoo Linux. Here is the detail: 
 
$ emerge info 
Portage 2.0.51-r8 (default-linux/x86/2004.0, gcc-3.4.3, glibc-2.3.4.20041102-r0, 
2.6.10-rc3-vv_e1 i686) 
================================================================= 
System uname: 2.6.10-rc3-vv_e1 i686 Intel(R) Pentium(R) 4 CPU 2.80GHz 
Gentoo Base System version 1.6.6 
Python:              dev-lang/python-2.3.4 [2.3.4 (#1, Sep 19 2004, 23:27:35)] 
dev-lang/python:     2.3.4 
sys-devel/autoconf:  2.59-r4 
sys-devel/automake:  1.8.5 
sys-devel/binutils:  2.14.90.0.8-r1 
sys-devel/libtool:   1.5.2-r7 
virtual/os-headers:  2.6.8.1 
ACCEPT_KEYWORDS="x86 ~x86" 
AUTOCLEAN="yes" 
CFLAGS="-O3 -march=pentium4 -pipe -fomit-frame-pointer -fPIC" 
CHOST="i686-pc-linux-gnu" 
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/alias /var/qmail/control /var/vpopmail/domains/var/vpopmail/etc" 
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" 
CXXFLAGS="-O3 -march=pentium4 -pipe -fomit-frame-pointer -fPIC" 
DISTDIR="/usr/portage/distfiles" 
FEATURES="autoaddcvs autoconfig ccache distlocks prelink sandbox sfperms" 
GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo 
ftp://mirrors1.netvisao.pt/gentoo/ http://gentoo.mirror.icd.hu/ 
ftp://ftp.heanet.ie/pub/gentoo/ ftp://ftp.easynet.nl/mirror/gentoo/" 
MAKEOPTS="-j2" 
PKGDIR="/usr/portage/packages" 
PORTAGE_TMPDIR="/var/tmp" 
PORTDIR="/usr/portage" 
PORTDIR_OVERLAY="/usr/local/overlays/portage /usr/local/overlays/bmg-gnome-current" 
SYNC="rsync://rsync.gentoo.org/gentoo-portage" 
USE="X aalib acpi alsa apache2 apm arts avi berkdb bitmap-fonts breakme cdr crypt 
cups dga dts dvd dvdr dvdread encode f77 fam flac flash foomaticdb fortran gdbm gif 
gimpprintgnome gphoto2 gpm gstreamer gtk gtk2 icc imagemagick imap imlib jack java 
jpeg junit kde ldap libg++ libwww mad maildir matroska mikmod mmx mmx2 motif 
mozilla mpeg mysql nas ncurses nls nptl odbc oggvorbis ooo-kde opengl oss pam 
pam-mysql pdflib perl png ppds python qt quicktime readline sasl scanner sdl slang 
spell sqlite sse sse2 ssl tcltk tcpd tiff truetype usb x86 xml xml2 xmms xv xvid zlib" 
 
 
 
So, the program is bugged, it segfaults and this renders the backup function useless, 
but you close the bug ????  First time I see this....