Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: named spinning



On Oct 5,  9:07pm, gary%duzan.org@localhost (Gary Duzan) wrote:
-- Subject: Re: named spinning

| In Message <j6is6p$osp$1%dough.gmane.org@localhost>,
|    christos%astron.com@localhost (Christos Zoulas)wrote:
| 
| =>In article <20111005225443.25B23115CF5%xen1.duzan.org@localhost>,
| =>Gary Duzan  <gary%duzan.org@localhost> wrote:
| =>>In Message <j6hlcc$a2m$1%dough.gmane.org@localhost>,
| =>>   christos%astron.com@localhost (Christos Zoulas)wrote:
| =>>
| =>>=>In article <20111005114906.2A9A911549C%xen1.duzan.org@localhost>,
| =>>=>Gary Duzan  <gary%duzan.org@localhost> wrote:
| =>>=>>   Since upgrading current on Sunday my named has been sucking CPU.
| =>>=>>Restarting it doesn't help, tcpdump shows no significant domain
| =>>=>>traffic on any interface, and a ktruss shows it just looping:
| =>>=>>
| =>>=>> [ ... ]
| =>>=>>
| =>>=>>   Anyone else seeing this? Thanks.
| =>>=>
| =>>=>Yes, can you compile with debugging symbols, attach in gdb and see where
| =>>=>it is spinning?
| =>>
| =>>(gdb) where
| =>>#0  0x00007f7ff5838cda in _sys___kevent50 () from /usr/lib/libc.so.12
| =>>#1  0x00007f7ff6005eb1 in __kevent50 () from /usr/lib/libpthread.so.1
| =>>#2  0x00007f7ff641d189 in watcher (uap=0x7f7ff7b2a000) at
| =>>/usr/src/external/bsd/bind/dist/lib/isc/unix/socket.c:5694
| =>>#3  0x00007f7ff60099d5 in pthread_setcancelstate () from
| =>>/usr/lib/libpthread.so.1
| =>>#4  0x00007f7ff5876350 in ___lwp_park50 () from /usr/lib/libc.so.12
| =>>#5  0x00007f7ff4000000 in ?? ()
| =>>#6  0x00007f7ff7fff2c0 in ?? ()
| =>>#7  0x0000000111110001 in ?? ()
| =>>#8  0x0000000033330003 in ?? ()
| =>>#9  0x0000000000000000 in ?? ()
| =>
| =>This is the event loop Can you print cc and *manager?
| 
|    Had to rebuild without -O2 to get cc.
| 
| (gdb) frame 2
| #2  0x00007f7ff6423b99 in watcher (uap=0x7f7ff7b2a000) at 
/usr/src/external/bsd/bind/dist/lib/isc/unix/socket.c:800
| 800             REQUIRE(counterid != -1);
| (gdb) print cc
| $1 = 1
| (gdb) print *manager
| $2 = {common = {impmagic = 1229942119, magic = 1098083687, methods = 
0x7f7ff66621d0}, mctx = 0x7f7ff7b05120, lock = {ptm_magic = 858980355, 
ptm_errorcheck = 0 '\0', ptm_pad1 = "\000\000", ptm_interlock = 0 '\0', 
ptm_pad2 = "\000\000", ptm_owner = 0x0,
|     ptm_waiters = 0x0, ptm_recursed = 0, ptm_spare2 = 0x0}, fdlock = 
0x7f7ff7b72000, stats = 0x7f7ff7b3d000, kqueue_fd = 8, nevents = 64, events = 
0x7f7ff7b7e000, maxsocks = 4096, pipe_fds = {5, 7}, fds = 0x7f7ff7b66000, 
fdstate = 0x7f7ff7b6e000, socklist = {
|     head = 0x7f7ff7b53000, tail = 0x7f7ff2a6c6c0}, reserved = 512, watcher = 
0x7f7ff3c00000, shutdown_ok = {ptc_magic = 1431633925, ptc_lock = 0 '\0', 
ptc_waiters = {ptqh_first = 0x0, ptqh_last = 0x7f7ff7b2a0b0}, ptc_mutex = 0x0, 
ptc_private = 0x0}, maxudp = 0}
| (gdb) 

print manager->events[0]?
then find out which fd it is and run fuser to see what it points to.

christos


Home | Main Index | Thread Index | Old Index