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 http://sourceware.org/systemtap/examples/general/para-callgraph-verbose.stp. 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