Sorry, no idea why those e-mails never got through, without a bounce;
I just noticed it now.  As an update, I just release wxPerl 0.91
which should fix all remaining threading problems.

Regards,
Mattia
--- Begin Message ---
Steffen Mueller wrote:

  Hi,

there have been occasional bad crashes of an application in whose development I'm involved in (Padre). With your generous help, I managed to build a debugging perl+wxWidgets+Wx combination and finally obtained a backtraces for such crashes. I always suspected a combination of ithreads with wx to be the culprit and unfortunately, it turns out I was right. It seems to happen only when a background thread is joined. Specifically during the resulting cleanup.

  This alone is a good indication the following speculation is correct.

I'm wildly speculating now: Maybe some of the Wx objects with underlying non-ithread-aware C++ implementation are being cloned on thread creation and dubiously freed on thread exit. Or maybe it's due to Thaw being called on a window that wasn't Freeze'd (see backtrace).

  Since wxWUL has a destructor, the following typemap confirms the
analysis above:

  wxWindowUpdateLocker *  O_NON_WXOBJECT

for an object with a Perl-level DESTROY method this needs to be
O_NON_WXOBJECT_THR (and some other changes).  You can look at

mbar...@madhatter ~/devel/wxPerl/wxPerl $ svn log -r 2515
------------------------------------------------------------------------
r2515 | mbarbon | 2008-11-30 12:14:49 +0100(Dom, 30 Nov 2008) | 2 lines

  Fix crash at thread join reported by Steffen Mueller.

------------------------------------------------------------------------

for an example, if you are interested.  I will try to make the fix later
today (currently at PyCon, will have to wait for an uninteresting talk
:-)

You can find an example backtrace with some additional debugging info here:

http://padre.perlide.org/attachment/ticket/287/backtrace

I'm unsure how to proceed with debugging these issues. I'm out of my depth, unfortunately, and would really appreciate any help.

  After looking at the typemap, I do not think you need to perform
any more debugging.  It should be easily reproducible in the test
suite.

Does anyone have any pointers on how I should go about finding the cause of this? Could you help if I provided more info? Right now, I'm able to conveniently reproduce that crash. I will try not to recompile or overwrite any part of the setup for a while in order to keep it that way. Please help.

Thanks!
Mattia


--- End Message ---
--- Begin Message ---
Steffen Mueller wrote:

  Hi again,

there have been occasional bad crashes of an application in whose development I'm involved in (Padre).

should be fixed in revision 2554.

Regards,
Mattia

P.S.: I noticed there are some more instances of 'thread KO' in
      wxPerl sources.  I will fix all of them for next release and
      perform another review for thread problems.



--- End Message ---

Reply via email to