Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 05 Dec 2000 15:18:49 +0200 (IST)
From:      Roman Shterenzon <roman@harmonic.co.il>
To:        Max Khon <fjoe@iclub.nsu.ru>
Cc:        stable@FreeBSD.ORG, mreimer@vpop.net
Subject:   Re: Mysql segfaults; is the culprit libstdc++, pthread, regex ...?
Message-ID:  <976022329.3a2ceb3942080@webmail.harmonic.co.il>
In-Reply-To: <Pine.BSF.4.21.0012050932480.81142-100000@iclub.nsu.ru>
References:  <Pine.BSF.4.21.0012050932480.81142-100000@iclub.nsu.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
Quoting Max Khon <fjoe@iclub.nsu.ru>:

> 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)

Maybe it's due to binutils update rather than the libc_r changes?

> > 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
> 



--Roman Shterenzon, UNIX System Administrator and Consultant
[ Xpert UNIX Systems Ltd., Herzlia, Israel. Tel: +972-9-9522361 ]


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?976022329.3a2ceb3942080>