Thread deadlock issue

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

??

-a

I am interesting in this. Would you provide us your abridged program
codes
that can reproduce the deadlock issue? Then we could have an insight
into
it.

On Nov 14, 2006, at 8:35 AM, [email protected] wrote:

                       ^^
                       ^^
                       ^^
                       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));
}


Eric H. - [email protected] - http://blog.segment7.net
This implementation is HODEL-HASH-9600 compliant

http://trackmap.robotcoop.com

On Wed, 15 Nov 2006, Eric H. wrote:

site_ruby/drb/drb.rb:127
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