From owner-freebsd-bugs Thu Oct 19 7: 7:37 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from hub.all.yans.ru (out.gutatelecom.ru [195.7.161.66]) by hub.freebsd.org (Postfix) with ESMTP id B33BB37B479 for ; Thu, 19 Oct 2000 07:07:33 -0700 (PDT) Received: by hub.all.yans.ru (Postfix, from userid 300) id 2AB007F8BE; Thu, 19 Oct 2000 18:07:04 +0400 (MSD) Date: Thu, 19 Oct 2000 18:07:04 +0400 From: Ekaterina Ivannikova To: freebsd-bugs@freebsd.org Subject: possible problem with threads lib in FreeBSD 4.1 Message-ID: <20001019180703.A3176@hub.all.yans.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Hi All, I was pursuing a strange bug which causes mysqld to hang (that is not to accept any new connections) on FreeBSD 4.1 after working for some time properly and MySQL folks suggested that there may be some pecularity in FreeBSD threads library. Here is the relevant information. >Release: mysql-3.23.25-beta (Source distribution) >Environment: System: FreeBSD hub.all.yans.ru 4.1-RELEASE FreeBSD 4.1-RELEASE #2: Mon Oct 9 14:22:57 MSD 2000 root@hub.all.yans.ru:/usr/src/sys/compile/HUB i386 Some paths: /usr/bin/perl /usr/bin/make /usr/local/bin/gmake /usr/bin/gcc /usr/bin/cc GCC: Using builtin specs. gcc version 2.95.2 19991024 (release) Compilation info: CC='cc' CFLAGS='-Wall -pipe' CXX='cc' CXXFLAGS='-Wall -pipe -fno-rtti -fno-exceptions -felide-constructors' LDFLAGS='' LIBC: -r--r--r-- 1 root wheel 1156960 Jul 28 17:05 /usr/lib/libc.a lrwxrwxrwx 1 root wheel 9 Aug 30 21:17 /usr/lib/libc.so -> libc.so.4 -r--r--r-- 1 root wheel 553460 Jul 28 17:05 /usr/lib/libc.so.4 Configure command: ./configure --prefix=/usr/local/mysql --with-debug=full --without-readline --enable-assembler --localstatedir=/var/db/mysql --enable-thread-safe-client Perl: This is perl, version 5.005_03 built for i386-freebsd Attaching with gdb to mysqld process produced the following output: bash-2.04# gdb mysqld 47659 GNU gdb 4.18 Copyright 1998 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-unknown-freebsd"... /root/mysql-3.23.25-beta/sql/47659: No such file or directory. Attaching to program: /root/mysql-3.23.25-beta/sql/mysqld, process 47659 Reading symbols from /usr/lib/libc_r.so.4...done. Reading symbols from /usr/lib/libm.so.2...done. Reading symbols from /usr/lib/libz.so.2...done. Reading symbols from /usr/lib/libcrypt.so.2...done. Reading symbols from /usr/libexec/ld-elf.so.1...done. 0x2821ff64 in _thread_sys_poll () from /usr/lib/libc_r.so.4 (gdb) info threads 4 process 47659, thread 4 0x2821780e in _thread_kern_sched () from /usr/lib/libc_r.so.4 3 process 47659, thread 3 0x2821780e in _thread_kern_sched () from /usr/lib/libc_r.so.4 2 process 47659, thread 2 0x2821780e in _thread_kern_sched () from /usr/lib/libc_r.so.4 * 1 process 47659, thread 1 0x2821ff64 in _thread_sys_poll () from /usr/lib/libc_r.so.4 (gdb) thread 1 [Switching to thread 1 (process 47659, thread 1)] #0 0x2821ff64 in _thread_sys_poll () from /usr/lib/libc_r.so.4 (gdb) bt #0 0x2821ff64 in _thread_sys_poll () from /usr/lib/libc_r.so.4 #1 0x28218913 in _thread_kern_sched_state_unlock () from /usr/lib/libc_r.so.4 #2 0x28217ffe in _thread_kern_sched () from /usr/lib/libc_r.so.4 #3 0x28218493 in _thread_kern_sched_state_unlock () from /usr/lib/libc_r.so.4 #4 0x2821643a in pthread_mutex_lock () from /usr/lib/libc_r.so.4 #5 0x2821d329 in pthread_exit () from /usr/lib/libc_r.so.4 #6 0x8079ca1 in end_thread (thd=0x8a3d000, put_in_cache=true) at mysqld.cc:928 #7 0x807ef15 in handle_one_connection (arg=0x8a3d000) at sql_parse.cc:421 #8 0x281df65b in _thread_start () from /usr/lib/libc_r.so.4 #9 0x0 in ?? () (gdb) thread 2 [Switching to thread 2 (process 47659, thread 2)] #0 0x2821780e in _thread_kern_sched () from /usr/lib/libc_r.so.4 (gdb) bt #0 0x2821780e in _thread_kern_sched () from /usr/lib/libc_r.so.4 #1 0x28218493 in _thread_kern_sched_state_unlock () from /usr/lib/libc_r.so.4 #2 0x2821643a in pthread_mutex_lock () from /usr/lib/libc_r.so.4 #3 0x2821d329 in pthread_exit () from /usr/lib/libc_r.so.4 #4 0x8079ca1 in end_thread (thd=0x8a3d000, put_in_cache=true) at mysqld.cc:928 #5 0x807ef15 in handle_one_connection (arg=0x8a3d000) at sql_parse.cc:421 #6 0x281df65b in _thread_start () from /usr/lib/libc_r.so.4 #7 0x0 in ?? () (gdb) thread 3 [Switching to thread 3 (process 47659, thread 3)] #0 0x2821780e in _thread_kern_sched () from /usr/lib/libc_r.so.4 (gdb) bt #0 0x2821780e in _thread_kern_sched () from /usr/lib/libc_r.so.4 #1 0x28218493 in _thread_kern_sched_state_unlock () from /usr/lib/libc_r.so.4 #2 0x2821643a in pthread_mutex_lock () from /usr/lib/libc_r.so.4 #3 0x28216744 in _mutex_cv_lock () from /usr/lib/libc_r.so.4 #4 0x2821da14 in pthread_cond_timedwait () from /usr/lib/libc_r.so.4 #5 0x28205389 in _thread_gc () from /usr/lib/libc_r.so.4 #6 0x281df65b in _thread_start () from /usr/lib/libc_r.so.4 #7 0x0 in ?? () (gdb) thread 4 [Switching to thread 4 (process 47659, thread 4)] #0 0x2821780e in _thread_kern_sched () from /usr/lib/libc_r.so.4 (gdb) bt #0 0x2821780e in _thread_kern_sched () from /usr/lib/libc_r.so.4 #1 0x28218422 in _thread_kern_sched_state () from /usr/lib/libc_r.so.4 #2 0x281dd39b in sigwait () from /usr/lib/libc_r.so.4 #3 0x807a244 in signal_hand (arg=0x0) at mysqld.cc:1153 #4 0x281df65b in _thread_start () from /usr/lib/libc_r.so.4 #5 0x0 in ?? () (gdb) Clients left connected were still able to communicate thru the existing connections. mysqld process is shown by ps as idle. FreeBSD is a vanilla 4.1-RELEASE with only tcp-iss patch installed, though mysqld hung without the patch as well. I looked in the stable branch on ftp, it seems that sources for libc_r were last changed in April, so no reason for upgrade ? Any advice is very much appreciated. Ekaterina Ivannikova To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message