Description:

I have some issues with mysql in my production environment that is causing
mysql not to accept remote connections on multiple machines.  It now
appear that a name resolution problem is the root of the problem but it is
not handled very well by mysql so it may want to be looked at.  Right now, I
can not make a mysql connection over the network to any of my machines but
the local unix socket works fine.  When ever I try a remote connection,
mysql logs that it restarted without any message about the cause of the
restart.  After some investigation it was discovered the mysqld daemon
actually seg faults.  #1 - The segfault message (below) is not logged by the
safe_mysqld script so that may want to be looked at.  After a while of
testing I discovered that if the --skip-name-resolve is specified in the
my.cnf file then the server accepts remote connections.  From the output of
gdb it looks like there is some problem in the method
_nss_dns_gethostbyaddr_r of file nss_dns/dns-host.c:223.  I have the
the outputs of strace and gdb output here...

http://rescomputing.com/~mpetteys/mysqlerr.zip.

There is probably some error handling in mysql that should be added to
prevent seg faults in whatever the circumstance that is causing this.

I am nearing my limits of diagnosing this problem.  I downloaded glibc but
cannot find anything in source that is obviously the cause of the problem.
I am not a c coder.  Any suggestion on solving the problem would be
appreciated while analyzing and/or solving this problem.

How-To-Repeat:
DON'T KNOW YET
Fix:
DON'T KNOW YET

Submitter-Id:   <submitter ID>
Originator:
Organization:
MySQL support: none
Synopsis:       Mysql seg faults on remote connections
Severity:       critical
Priority:       high
Category:       mysql
Class:  sw-bug
Release:        mysql-3.23.36 (Source distribution)

Environment:

[root@js1 /root]# rpm -qa | grep mysql
mysqlclient9-3.23.22-4
mysql-server-3.23.36-1
mysql-3.23.36-1
mod_auth_mysql-1.11-1
php-mysql-4.1.2-7.1.4
[root@js1 /root]# cat /etc/redhat-release
Red Hat Linux release 7.1 (Seawolf)
[root@js1 /root]#

System: Linux js1.rescomputing.com 2.4.9-6 #1 Thu Oct 18 09:22:43 EDT 2001
i686 unknown
Architecture: i686

Some paths:  /usr/bin/perl /usr/bin/make /usr/bin/gmake /usr/bin/gcc
/usr/bin/cc
GCC: Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-85)
Compilation info: CC='gcc'  CFLAGS='-O2 -march=i386 -mcpu=i686'  CXX='c++'
CXXFLAGS='-O2 -march=i386 -mcpu=i686'  LDFLAGS=''
LIBC:
lrwxrwxrwx    1 root     root           13 Oct 19  2001 /lib/libc.so.6 ->
libc-2.2.4.so
-rwxr-xr-x    1 root     root      1285884 Sep  9 12:10 /lib/libc-2.2.4.so
-rw-r--r--    1 root     root     27336078 Sep  9 11:48 /usr/lib/libc.a
-rw-r--r--    1 root     root          178 Sep  9 11:48 /usr/lib/libc.so
Configure command: ./configure

i386-redhat-linux --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbind
ir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/includ
e --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --shareds
tatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --without
-debug --without-readline --enable-shared --with-extra-charsets=complex --wi
th-bench --localstatedir=/var/lib/mysql --with-unix-socket-path=/var/lib/mys
ql/mysql.sock --with-mysqld-user=mysql --with-extra-charsets=all --with-berk
eley-db

HERE IS WHAT IS LOGGED IN mysqld.log = basically the output of safe_mysqld

021016 00:39:22  mysqld ended

021016 00:39:31  mysqld started
/usr/libexec/mysqld: ready for connections

Number of processes running now: 1
mysqld process hanging, pid 10535 - killed
021016 00:39:48  mysqld restarted
/usr/libexec/mysqld: ready for connections

Number of processes running now: 1
mysqld process hanging, pid 10559 - killed
021016 00:40:42  mysqld restarted
/usr/libexec/mysqld: ready for connections

Number of processes running now: 1
mysqld process hanging, pid 10583 - killed
021016 00:40:52  mysqld restarted
/usr/libexec/mysqld: ready for connections

HERE IS THE OUTPUT OF THE safe_mysqld WHEN YOU RUN IT MANUALLY

[root@js1 mpetteys]# /usr/bin/safe_mysqld
Starting mysqld daemon with databases from /var/lib/mysql
/usr/bin/safe_mysqld: line 258: 10651 Segmentation fault
$NOHUP_NICENESS $ledir/$MYSQLD
$defaults --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR
$USER_OPTION --pid-file=$pid_file --skip-locking >>$err_log 2>&1

Number of processes running now: 1
mysqld process hanging, pid 10654 - killed
021016 00:42:28  mysqld restarted


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to