Debugging reportbug.

I've been hit by #610348 for some time now. I didn't comment on the bug report because I failed to find useful information to add there.

I've tried several things:

  • using strace, one can find that reportbug freeze waiting for a returning futex.
  • using ltrace, the freeze happen while calling sem_wait. It also happen sooner: the gui is not opened yet.
  • using gdb I can sees that the sem_wait call have been made from PyThread_acquire_lock, but this seem only logical.

All this together give me no useful information. Further testing show that:

  • the freeze don't always happen at the same time, and using python2.5 seem to make it happen latter.
  • Trying to run it in another environment (say gnome) or with another user do not solve this for me.
  • The problem don't exist in a brand new chroot, prooving it's a configuration problem. But which one?
  • using meld I've tried to find significant difference between the two /etc, but found nothing that explain the problem.

I have no idea on what to do next to find where is the problem...

Iirc it is python -have you tried to python -m trace it?
Comment by Yaroslav Thu Mar 31 07:17:53 2011
Iirc it is python -have you tried to python -m trace it?
Comment by someone somewhere Thu Mar 31 18:49:22 2011
I've just try it: it make a whole lot of information to read. First test show that the problem seem to appear in different python function depending on I don't know what.
Comment by remi Thu Mar 31 19:00:50 2011

I'd probably look in the direction of toolkit bindings being used in ways they are not specified to be used. (Something like a bad interaction between callbacks needing a lock and something else holding it.) Or you could try to emit something on all locking.

Comment by Anonymous Thu Mar 31 21:13:50 2011
Well, I would like to be able to isolate the code source where the problem occur. My knowledge on python-gtk is not very good...
Comment by remi Thu Mar 31 23:19:18 2011
I've used dtrace on solaris. Systemtap is the equivalent for linux. It allows call graphs with parameters and return arguments to be generated. There is an example on It may be a lot of information but at least the developer would have something to investigate.
Comment by Anon Fri Apr 1 00:37:44 2011