From: Dan Nelson Date: August 9 2002 9:04pm Subject: Re: SIGPROF problem in FreeBSD 4.6 (REPOST) List-Archive: http://lists.mysql.com/mysql/116765 Message-Id: <20020809210410.GA7599@dan.emsphone.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In the last episode (Aug 09), David Miller said: > On Sun, 4 Aug 2002, Jeremy Zawodny wrote: > > On Sat, Aug 03, 2002 at 11:59:56PM -0400, mysql@stripped wrote: > > I didn't think my server would be doing any name resolution, > particularly while replace()ing millions of rows in a table. That > said, --skip-name-resolve *seems* to have helped. It's definately > still failing, and the ktrace is the same, so it's not two problems: > > 88274 mysqld PSIG SIGPROF caught handler=0x812d58c mask=0x0 code=0x0 > 88274 mysqld CALL gettimeofday(0x81c634c,0) > 88274 mysqld RET gettimeofday 0 > 88274 mysqld CALL sigprocmask(0x3,0x81c63d8,0) > 88274 mysqld RET sigprocmask 0 > 88274 mysqld CALL sigaltstack(0x8203ca0,0) > 88274 mysqld RET sigaltstack 0 > 88274 mysqld CALL poll(0x821c000,0xd,0) > 88274 mysqld RET poll 0 > 88274 mysqld CALL sigreturn(0x2445b464) > 88274 mysqld RET sigreturn JUSTRETURN > 88274 mysqld PSIG SIGPROF caught handler=0x812d58c mask=0x0 code=0x0 This ktrace doesn't have anything really interesting in it. FreeBSD's threads library uses the profiling timer to allow for pre-emptive thread switching, so you're going to see lots of them. The poll call looks a bit odd though. It's polling 13 file descriptors (0xd == 13) with no timeout in a tight loop. > > > mysqld locks itself in a tight loop, consuming all available CPU > > > cycles. a simple "kill" sometimes kills the daemon, other times a > > > -9 is required. While in this state, any access to the daemon > > > stops - mysql queries simply hang. A coredump of this state + gdb "thread apply all bt" might be interesting. > > Hmm. Looks like a problem we solve recently, but yours is a bit > > different. We found that FreeBSD's not-so-thread-safe > > gethostbyname_r() causes problems for MySQL. So it's best to use > > --skip-name-resolve when starting it up. Maybe the same bug is > > somehow triggering this? Seems unlikely, but ya never know... FreeBSD doesn't even provide a gethostbyname_r(), so that can't be the problem :) -- Dan Nelson dnelson@stripped