8.2 + apache == a LOT of sigprocmask

Doug Barton dougb at FreeBSD.org
Fri Nov 18 20:07:52 UTC 2011


On 11/18/2011 01:19, Kostik Belousov wrote:
> On Fri, Nov 18, 2011 at 12:00:57AM -0800, Doug Barton wrote:
>> On 11/17/2011 02:57, Kostik Belousov wrote:
>>>>> It's not catching there though:
>>>>>
>>>>> Reading symbols from /libexec/ld-elf.so.1...done.
>>>>> Loaded symbols for /libexec/ld-elf.so.1
>>>>> 0x28183b2d in accept () at accept.S:3
>>>>> 3	RSYSCALL(accept)
>>>>> (gdb) c
>>>>> Continuing.
>>>>> no thread to satisfy query
>>>>> 0x28183b2d in accept () at accept.S:3
>>>>> 3	RSYSCALL(accept)
>>>>> (gdb) info threads
>>>>> Cannot get thread info: invalid key
>>>>> (gdb)
>>> Err, the other part of my message was that you shall set the breakpoint
>>> on sigprocmask.
>>
>> I'm sorry I'm not making myself clear. We are setting the breakpoint on
>> sigprocmask. But, maybe I'm doing it wrong. Can you give precise
>> instructions as to what you want me to do, from the beginning? Sorry to
>> be so dense.
> Find the pid of the process issuing excessive number of sigprocmask
> calls. Do
> $ gdb /usr/local/bin/httpd
> (gdb) attach <pid>
> (gdb) b _sigprocmask
> (gdb) c
> Bah ! Breakpoint fired.
> (gdb) bt
> (gdb) c
> <... Repeat ... >

Right, so we're on the same page at least. I've been abbreviating the
output of gdb to make it easier to see the problem, but here is a
(nearly) complete transcript:

gdb /usr/local/bin/httpd
Copyright 2004 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-marcel-freebsd"...
(gdb) attach 1380
Attaching to program: /usr/local/bin/httpd, process 1380
Reading symbols from .... (lots of symbol-reading snipped)
3	RSYSCALL(accept)
Current language:  auto; currently asm
(gdb) b _sigprocmask
Breakpoint 1 at 0x282d9055: file /usr/src/lib/libthr/thread/thr_sig.c,
line 210.
(gdb) c
Continuing.
no thread to satisfy query
0x28183b2d in accept () at accept.S:3
3	RSYSCALL(accept)
(gdb) c
Continuing.
no thread to satisfy query
0x28183b2d in accept () at accept.S:3
3	RSYSCALL(accept)
(gdb) c
Continuing.
no thread to satisfy query
0x28183b2d in accept () at accept.S:3
3	RSYSCALL(accept)

.... etc.



-- 

		"We could put the whole Internet into a book."
		"Too practical."

	Breadth of IT experience, and depth of knowledge in the DNS.
	Yours for the right price.  :)  http://SupersetSolutions.com/



More information about the freebsd-stable mailing list