On Mon, 22 Feb 2010, Peter Steele wrote:

Just out of curiosity, can you attach to the process via gdb and get a backtrace? This smells like a locked pthread_join I hit in my own code a few weeks ago

I'm not using the debug version of ntpd so the backtrace isn't too useful, but here's what I get:

(gdb) bt
#0  0x0000000800d52bfc in select () from /lib/libc.so.7
#1  0x0000000000425273 in ?? ()
#2  0x000000000040540e in ?? ()
#3  0x0000000800580000 in ?? ()
#4  0x0000000000000000 in ?? ()

I bet ntpd doesn't call select() in all that many places. Instead of going to all this trouble to build a debugging libc, you could just grep for select() and place breakpoints on all occurrences. (It might also be obvious from looking at them which one is the offender.)

Also, since a system call is causing the trouble, you might learn something from truss or ktrace.

--

Nate Eldredge
n...@thatsmathematics.com
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to