[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