From owner-freebsd-stable Mon Dec 4 19:55:23 2000 From owner-freebsd-stable@FreeBSD.ORG Mon Dec 4 19:55:21 2000 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from iclub.nsu.ru (iclub.nsu.ru [193.124.222.66]) by hub.freebsd.org (Postfix) with ESMTP id 042F437B402 for ; Mon, 4 Dec 2000 19:55:19 -0800 (PST) Received: from localhost (fjoe@localhost) by iclub.nsu.ru (8.11.1/8.11.1) with ESMTP id eB53sKp81736; Tue, 5 Dec 2000 09:54:27 +0600 (NS) (envelope-from fjoe@iclub.nsu.ru) Date: Tue, 5 Dec 2000 09:54:19 +0600 (NS) From: Max Khon To: stable@freebsd.org Cc: mreimer@vpop.net Subject: Mysql segfaults; is the culprit libstdc++, pthread, regex ...? Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG hi, there! > We've been having problems with mysql segfaulting. It seems to occur > when it tries to return from a function, so maybe the stack is getting > stomped. I have noticed similar problems with ACE wrappers yesterday (segfaults on "return"s) > This problem occurs with mysql 3.23.2[678] (we haven't tested other > versions), and with FreeBSD 4.2 from Nov 21, 24, 28 (and presumably > newer) but it does not occur under FreeBSD 4.0 or Linux. That's bad. Now I'm trying to build 4.2-RELEASE world (with libc_r recursive mutex fix) to see if it would fix my problems (4.2-RELEASE has unaltered g++ and no file descriptor race patchset) > Strangely, what seems to fix the problem for FreeBSD 4.2 is to compile > mysql with gcc and g++ (instead of cc and c++), by setting CC=gcc and > CXX=g++. I'm not sure what happens differently, other than that the > binary compiled with gcc/g++ does not depend on libstdc++, whereas the > binary compiled with cc/c++ does: > /usr/local/mysql/libexec/mysqld: > libc_r.so.4 => /usr/lib/libc_r.so.4 (0x28176000) > libm.so.2 => /usr/lib/libm.so.2 (0x28228000) > libcrypt.so.2 => /usr/lib/libcrypt.so.2 (0x28243000) > > /usr/local/mysql-broken/libexec/mysqld: > libc_r.so.4 => /usr/lib/libc_r.so.4 (0x281d8000) > libz.so.2 => /usr/lib/libz.so.2 (0x2828a000) > libcrypt.so.2 => /usr/lib/libcrypt.so.2 (0x28297000) > libstdc++.so.3 => /usr/lib/libstdc++.so.3 (0x282ac000) > libm.so.2 => /usr/lib/libm.so.2 (0x282f2000) > > Why does compiling mysql this way fix the problem? can you show me `which g++` and `g++ -v` output? seems that you have g++ which is actually /usr/ports/lang/egcs -- that g++ link programs against libstdc++ statically. it also uses other exception handling scheme. does mysql use exceptions? /fjoe To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message