Summary: | Telepathy/KDE crashed | ||
---|---|---|---|
Product: | [Frameworks and Libraries] telepathy | Reporter: | Dennis Schridde <dschridde+kde> |
Component: | text-ui | Assignee: | Telepathy Bugs <kde-telepathy-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | dschridde+kde, dvratil, kde |
Priority: | NOR | ||
Version: | 0.5.2 | ||
Target Milestone: | 0.5-next | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/telepathy-text-ui/3730b4eabd0018737fbd0ab87b44a1237179fcf9 | Version Fixed In: | 0.5.3 |
Attachments: | New crash information added by DrKonqi |
Description
Dennis Schridde
2013-01-26 15:25:56 UTC
Are you able to reproduce this? Have not tried yet. Created attachment 76737 [details]
New crash information added by DrKonqi
ktp-text-ui (0.5.2) on KDE Platform 4.8.5 (4.8.5) using Qt 4.8.1
- What I was doing when the application crashed:
Yes, I am able to reproduce this in exactly the way I described above:
1) Open Contact List
2) Switch from Offline to Online
3) Double-click a contact, with the intend to open a Chat Window
4) Switch to Offline again, before the Chat Window has opened
5) Observe the Chat Window crash right after it appears and see the error message via system notifications: "org.freedesktop.Telepathy.Error.Disconnected: Channel aborted"
-- Backtrace (Reduced):
#7 0x01192be6 in Tp::Contact::avatarData() const () from /usr/lib/i386-linux-gnu/libtelepathy-qt4.so.2
#8 0x004bff7b in LogManager::onEventsFinished (this=0x8ea0a28, po=0x8fcea38) at /build/buildd/ktp-text-ui-0.5.2/lib/logmanager.cpp:198
#9 0x004988d9 in LogManager::qt_static_metacall (_o=0x8ea0a28, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbf8e57c8) at /build/buildd/ktp-text-ui-0.5.2/obj-i686-linux-gnu/lib/moc_logmanager.cpp:58
[...]
#11 0x01be64d5 in Tpl::PendingOperation::finished (this=0x8fcea38, _t1=0x8fcea38) at /build/buildd/telepathy-logger-qt-0.5.2/obj-i686-linux-gnu/TelepathyLoggerQt4/_gen/pending-operation.moc.hpp:111
#12 0x01be6a8f in Tpl::PendingOperation::emitFinished (this=0x8fcea38) at /build/buildd/telepathy-logger-qt-0.5.2/TelepathyLoggerQt4/pending-operation.cpp:98
Perfect, thanks There are two possible ways this is crashing either connection->selfContact() is null OR channel->targetContact() is null.. I'd like a dev to work out which before we continue I think either the connection or the channel get invalidated before we can properly start up, we start the log manager async - so even though the UI drops properly the log manager then finishes but one of the two (or both) have been invalidated in the mean time so calls to selfContact/targetContact return null pointers. Possible fixes are: - we check in LogManager::onEventsFinished before usage. - we delete any active logmanager instances inside ChatWidget::setEnabled() I'm afraid deleting the LogManager won't help, because Tpl::LogManager is a singleton, so PendingOperation will finish anyway and we would get crash because of invalid "this". That settles that then :) Git commit 3730b4eabd0018737fbd0ab87b44a1237179fcf9 by Dan Vrátil. Committed on 27/01/2013 at 18:45. Pushed by dvratil into branch 'kde-telepathy-0.5'. Don't crash when account goes offline while we are loading history Also clean up coding style in the file a bit. REVIEW: 108607 FIXED-IN: 0.5.3 M +16 -7 lib/logmanager.cpp http://commits.kde.org/telepathy-text-ui/3730b4eabd0018737fbd0ab87b44a1237179fcf9 |