From: ara.t.howard@... Date: 2006-11-15T07:00:23+09:00 Subject: Re: thread deadlock issue On Wed, 15 Nov 2006, Eric Hodel wrote: > > On Nov 14, 2006, at 8:35 AM, ara.t.howard@noaa.gov wrote: > >> can anyone interpret this >> >> deadlock 0xb7d8ff3c: sleep:T(1000000000000000019884624838656.000000) - >> /usr/local/ruby-1.8.4/lib/ruby/site_ruby/slave.rb:306 >> deadlock 0xb7d90888: sleep:F(4) - /usr/local/ruby-1.8.4/lib/ruby/ >> site_ruby/drb/unix.rb:87 >> deadlock 0xb7d8fe9c: sleep:S - /usr/local/ruby-1.8.4/lib/ruby/ >> site_ruby/drb/drb.rb:127 >> ^^ >> ^^ >> ^^ >> ^^ >> the bit in question > > FOREACH_THREAD_FROM(curr, th) { > warn_printf("deadlock 0x%lx: %s:", > th->thread, thread_status_name(th->status)); > if (th->wait_for & WAIT_FD) warn_printf("F(%d)", th->fd); > if (th->wait_for & WAIT_SELECT) warn_printf("S"); > if (th->wait_for & WAIT_TIME) warn_printf("T(%f)", th->delay); > if (th->wait_for & WAIT_JOIN) > warn_printf("J(0x%lx)", th->join ? th->join->thread : 0); > if (th->wait_for & WAIT_PID) warn_printf("P"); > if (!th->wait_for) warn_printf("-"); > warn_printf(" %s - %s:%d\n", > th==main_thread ? "(main)" : "", > th->node->nd_file, nd_line(th->node)); > } so, this seems like a bug. the thread in T state has made a call to 'sleep' - if that thread is sleeping, and the other two are blocked on io/select, why wouldn't it simply continue to sleep? regards. -a -- my religion is very simple. my religion is kindness. -- the dalai lama