[Psi-Devel] Weird crash, could be caused by qt signals blocking thread and event being deleted

Norman Rasmussen norman at rasmussen.co.za
Wed Jun 11 04:24:26 PDT 2008


Here's one that I didn't expect (this was with rev 1100, so it just _might_
have been fixed by some of the more recent check-ins)

I was busy chatting to someone, and they sent me a message, and psi crashed,
the stack was something like:

PsiAccount::queueEvent
PsiAccount::handleEvent
PsiAccount::processIncomingMessage

and near the end of queueEvent, at the "e->type() == PsiEvent::Message"
check, e was pointing to 0x00000001.  So my guess is that it could have been
deleted at some point in time.

Now is it possible that the event was queued (~15 lines above it's added to
eventQueue), and some Qt magic caused the thread to be suspended (I'm
thinking either the raiseMainwin - I have raise-on-new-event enabled - or
cpUpdate), and then the event was processed elsewhere causing it to be
deleted - so that when the thread resumed it was invalid.

For the purposes of testing I skipped the rest of the function, and resumed
execution and life continued happily.  I think for the life of me what could
have caused this (it's the first time I've ever seen this).

- Norman Rasmussen
- Email: norman at rasmussen.co.za
- Home page: http://norman.rasmussen.co.za/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.affinix.com/pipermail/psi-devel-affinix.com/attachments/20080611/848b27c6/attachment.htm>


More information about the Psi-Devel mailing list