Hello everybody,
There is a bug in Calitko that crashes it randomly quite strangely in Qt’s implementation for the signals and slots mechanism. I suspect that this has something to do with an object being deleted while/before some/all of its emitted signals have been processed. I haven’t looked into it in too much detail but the classes I suspect are TcpConnection, HandshakeSession and PacketSession.
One idea I have for the solution involves calling object.deleteLater(); on the object of the suspected classes instead of delete object;. If that is done, then the related slot that have been connected in mode Qt::QueuedConnection can be connected in the default mode (Qt::DirectConnection). That may or may not be enough to solve the problem but should at least help track it down. With direct connection one would be able to see in the backtrace (call stack) the processing of which signal crashes.
Would somebody want to try figure out what exactly happens?
Regards,
Peter
