Re: [wmii] Ruby-IXP freezing with overload patch

From: Suraj N. Kurapati <>
Date: Tue, 26 Sep 2006 20:16:11 -0700

Hash: SHA1

Oliver Heins wrote:
> "Suraj N. Kurapati" <> writes:
>> Good work. I reproduced the bug on my system, but only the
>> status-bar thread had frozen. As I suspected, this might be a
>> problem with Ruby-IXP not waking up the requester thread.
>> (In my case, the requester thread is the satus-bar thread, whereas
>> in ruby-wmii, the requester thread might be the wmiirc itself; thus,
>> the entire wmiirc freezes.)
> I'm not sure about this. It might be only a thread that freezes, it
> might be the whole wmiirc. How can I find out?

If you run Ruby-IXP in debug mode, it will give some output saying
which threads are waiting for a response.

>> Update your copy of Ruby-IXP to r68 from SVN, and try to reproduce the
>> bug again. It does not seem to occur for me anymore.
> I'm sorry to say this, but wmiirc still freezes when I send a client to
> another view.

You're right. The changes I made did not solve the problem. I
thought about it some more and was able to narrow down the problem
even further.

The assignment of unique tags to requester threads was not
synchronized. Thus, more than one requester thread could be assigned
the same unique tag. And when the response arrived, only one of the
requester threads would be woken up.

I fixed this (hopefully! :-) in r69 from SVN; please try it and
report back.

> Normally, I don't get any error messages in the log file, only something
> like `1] INFO -- : Retagging ["emacs"] => "2+emacs")'). But once, I
> discovered this entry:
> | /usr/bin/tzwatch: line 137: [: ==: unary operator expected
> | ./.wmii-3/lib/ixp/client.rb:83:in `check_order': file not found (IXP::IXPException)
> | from ./.wmii-3/lib/ixp/client.rb:72:in `query'
> | from ./.wmii-3/lib/ixp/client.rb:190:in `open'

This is the result of doing some I/O operation on a nonexistent file
in IXP file system. It might be due to the problem mentioned above,
but I cannot say for certain.

Thanks for your feedback.
Version: GnuPG v1.4.2.2 (GNU/Linux)

Received on Wed Sep 27 2006 - 05:15:46 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 16:14:28 UTC