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