Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Dec 2000 09:54:19 +0600 (NS)
From:      Max Khon <fjoe@iclub.nsu.ru>
To:        stable@freebsd.org
Cc:        mreimer@vpop.net
Subject:   Mysql segfaults; is the culprit libstdc++, pthread, regex ...?
Message-ID:  <Pine.BSF.4.21.0012050932480.81142-100000@iclub.nsu.ru>

next in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0012050932480.81142-100000>