Summary: | Seg fault on exit of KTorrent 4.1 | ||
---|---|---|---|
Product: | [Applications] ktorrent | Reporter: | Robert Simmons <rsimmons0> |
Component: | general | Assignee: | Joris Guisson <joris.guisson> |
Status: | RESOLVED FIXED | ||
Severity: | crash | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Robert Simmons
2011-04-13 17:34:38 UTC
I also started a thread on ktorrent.org's developer forum about this bug here: http://ktorrent.org/forum/viewtopic.php?f=1&t=4044&p=20275#p20275 Cannot seem to reproduce. Could you run it under valgrind ? valgrind --log-file=vg.log --num-callers=50 /usr/bin/ktorrent --nofork When it crashes, post the vg.log file here. Note that running under valgrind is slow. $ cat vg.log ==23652== Memcheck, a memory error detector ==23652== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==23652== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info ==23652== Command: /usr/local/bin/ktorrent --nofork ==23652== Parent PID: 23568 ==23652== ==23652== Conditional jump or move depends on uninitialised value(s) ==23652== at 0x688D611: inflateReset2 (in /lib/libz.so.1.2.3.4) ==23652== by 0x688D6EC: inflateInit2_ (in /lib/libz.so.1.2.3.4) ==23652== by 0x688D762: inflateInit_ (in /lib/libz.so.1.2.3.4) ==23652== by 0x6B1DF13: png_create_read_struct_2 (in /lib/libpng12.so.0.44.0) ==23652== by 0x6B1E0F9: png_create_read_struct (in /lib/libpng12.so.0.44.0) ==23652== by 0x55E3A53: QPngHandlerPrivate::readPngHeader() (qpnghandler.cpp:356) ==23652== by 0x55E448A: QPngHandlerPrivate::readPngImage(QImage*) (qpnghandler.cpp:427) ==23652== by 0x55AC23B: QImageReader::read(QImage*) (qimagereader.cpp:1205) ==23652== by 0x55AC876: QImageReader::read() (qimagereader.cpp:1155) ==23652== by 0x559ADB0: operator>>(QDataStream&, QImage&) (qimage.cpp:5149) ==23652== by 0x55BDC93: operator>>(QDataStream&, QPixmap&) (qpixmap.cpp:1315) ==23652== by 0x4A3889F: KIconLoaderPrivate::findCachedPixmapWithPath(QString const&, QPixmap&, QString&) (kiconloader.cpp:884) ==23652== by 0x4A3FF5E: KIconLoader::loadIcon(QString const&, KIconLoader::Group, int, int, QStringList const&, QString*, bool) const (kiconloader.cpp:1231) ==23652== by 0x4A363F5: KIconEngine::pixmap(QSize const&, QIcon::Mode, QIcon::State) (kiconengine.cpp:93) ==23652== by 0x5585625: QIcon::pixmap(QSize const&, QIcon::Mode, QIcon::State) const (qicon.cpp:676) ==23652== by 0x556FAB2: QWidgetPrivate::setWindowIcon_sys(bool) (qwidget_x11.cpp:1460) ==23652== by 0x551F278: QWidget::event(QEvent*) (qwidget.cpp:8288) ==23652== by 0x54C0FDB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4396) ==23652== by 0x54C70E8: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4361) ==23652== by 0x4A9B829: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:311) ==23652== by 0x51E5B3A: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:732) ==23652== by 0x54C12A3: QApplication::setWindowIcon(QIcon const&) (qcoreapplication.h:215) ==23652== by 0x4A9D41F: KApplicationPrivate::parseCommandLine() (kapplication.cpp:839) ==23652== by 0x4A9DE73: KApplicationPrivate::init(bool) (kapplication.cpp:475) ==23652== by 0x4A9EDAA: KApplication::KApplication(bool, KComponentData const&) (kapplication.cpp:387) ==23652== by 0x4AA571D: KUniqueApplication::KUniqueApplication(bool, bool) (kuniqueapplication.cpp:310) ==23652== by 0x807A6F1: kt::App::App() (app.cpp:42) ==23652== by 0x8068FFF: main (main.cpp:175) ==23652== ==23652== Use of uninitialised value of size 4 ==23652== at 0x50DE4C9: QMutex::lock() (qmutex.cpp:151) ==23652== by 0x408AB2C: net::SocketMonitor::add(net::BufferedSocket*) (qmutex.h:102) ==23652== by 0x4093FD6: mse::StreamSocket::startMonitoring(net::SocketReader*, net::SocketWriter*) (streamsocket.cpp:94) ==23652== by 0x40A0CFD: bt::Peer::Peer(QSharedPointer<mse::StreamSocket>, bt::PeerID const&, unsigned int, unsigned int, unsigned int, bool, bt::PeerManager*) (peer.cpp:95) ==23652== by 0x40A684C: bt::PeerManager::Private::createPeer(QSharedPointer<mse::StreamSocket>, bt::PeerID const&, unsigned int, bool) (peermanager.cpp:782) ==23652== by 0x40A8069: bt::PeerManager::peerAuthenticated(bt::Authenticate*, QWeakPointer<bt::PeerConnector>, bool) (peermanager.cpp:294) ==23652== by 0x40B1E47: bt::PeerConnector::Private::authenticationFinished(bt::Authenticate*, bool) (peerconnector.cpp:138) ==23652== by 0x40B240E: bt::PeerConnector::authenticationFinished(bt::Authenticate*, bool) (peerconnector.cpp:123) ==23652== by 0x4098A14: bt::Authenticate::onFinish(bool) (authenticate.cpp:170) ==23652== by 0x4098357: bt::Authenticate::handshakeReceived(bool) (authenticate.cpp:206) ==23652== by 0x4097596: bt::AuthenticateBase::onReadyRead() (authenticatebase.cpp:143) ==23652== by 0x409800E: bt::Authenticate::onReadyRead() (authenticate.cpp:145) ==23652== by 0x409AC07: bt::AuthenticationMonitor::handleData() (authenticationmonitor.cpp:136) ==23652== by 0x409ADCA: bt::AuthenticationMonitor::update() (authenticationmonitor.cpp:111) ==23652== by 0x806B390: kt::Core::update() (core.cpp:1043) ==23652== by 0x8073F40: kt::Core::qt_metacall(QMetaObject::Call, int, void**) (core.moc:164) ==23652== by 0x51EB8C9: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (qmetaobject.cpp:237) ==23652== by 0x51FE6AC: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3280) ==23652== by 0x52501E6: QTimer::timeout() (moc_qtimer.cpp:134) ==23652== by 0x52041CD: QTimer::timerEvent(QTimerEvent*) (qtimer.cpp:271) ==23652== by 0x51F8503: QObject::event(QEvent*) (qobject.cpp:1183) ==23652== by 0x54C0FDB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4396) ==23652== by 0x54C704D: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3798) ==23652== by 0x807A4AB: kt::App::notify(QObject*, QEvent*) (app.cpp:97) ==23652== by 0x51E5B3A: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:732) ==23652== by 0x5217AD5: QTimerInfoList::activateTimers() (qcoreapplication.h:215) ==23652== by 0x5214873: timerSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:184) ==23652== by 0x6A32854: g_main_context_dispatch (in /lib/libglib-2.0.so.0.2600.1) ==23652== by 0x6A36667: ??? (in /lib/libglib-2.0.so.0.2600.1) ==23652== by 0x6A36847: g_main_context_iteration (in /lib/libglib-2.0.so.0.2600.1) ==23652== by 0x5214564: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:415) ==23652== by 0x5582BE4: QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qguieventdispatcher_glib.cpp:204) ==23652== by 0x51E4608: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==23652== by 0x51E4A89: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==23652== by 0x51E900E: QCoreApplication::exec() (qcoreapplication.cpp:1009) ==23652== by 0x54BFE06: QApplication::exec() (qapplication.cpp:3672) ==23652== by 0x8069010: main (main.cpp:177) ==23652== ==23652== Invalid read of size 1 ==23652== at 0x50DE4C9: QMutex::lock() (qmutex.cpp:151) ==23652== by 0x408AB2C: net::SocketMonitor::add(net::BufferedSocket*) (qmutex.h:102) ==23652== by 0x4093FD6: mse::StreamSocket::startMonitoring(net::SocketReader*, net::SocketWriter*) (streamsocket.cpp:94) ==23652== by 0x40A0CFD: bt::Peer::Peer(QSharedPointer<mse::StreamSocket>, bt::PeerID const&, unsigned int, unsigned int, unsigned int, bool, bt::PeerManager*) (peer.cpp:95) ==23652== by 0x40A684C: bt::PeerManager::Private::createPeer(QSharedPointer<mse::StreamSocket>, bt::PeerID const&, unsigned int, bool) (peermanager.cpp:782) ==23652== by 0x40A8069: bt::PeerManager::peerAuthenticated(bt::Authenticate*, QWeakPointer<bt::PeerConnector>, bool) (peermanager.cpp:294) ==23652== by 0x40B1E47: bt::PeerConnector::Private::authenticationFinished(bt::Authenticate*, bool) (peerconnector.cpp:138) ==23652== by 0x40B240E: bt::PeerConnector::authenticationFinished(bt::Authenticate*, bool) (peerconnector.cpp:123) ==23652== by 0x4098A14: bt::Authenticate::onFinish(bool) (authenticate.cpp:170) ==23652== by 0x4098357: bt::Authenticate::handshakeReceived(bool) (authenticate.cpp:206) ==23652== by 0x4097596: bt::AuthenticateBase::onReadyRead() (authenticatebase.cpp:143) ==23652== by 0x409800E: bt::Authenticate::onReadyRead() (authenticate.cpp:145) ==23652== by 0x409AC07: bt::AuthenticationMonitor::handleData() (authenticationmonitor.cpp:136) ==23652== by 0x409ADCA: bt::AuthenticationMonitor::update() (authenticationmonitor.cpp:111) ==23652== by 0x806B390: kt::Core::update() (core.cpp:1043) ==23652== by 0x8073F40: kt::Core::qt_metacall(QMetaObject::Call, int, void**) (core.moc:164) ==23652== by 0x51EB8C9: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) (qmetaobject.cpp:237) ==23652== by 0x51FE6AC: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3280) ==23652== by 0x52501E6: QTimer::timeout() (moc_qtimer.cpp:134) ==23652== by 0x52041CD: QTimer::timerEvent(QTimerEvent*) (qtimer.cpp:271) ==23652== by 0x51F8503: QObject::event(QEvent*) (qobject.cpp:1183) ==23652== by 0x54C0FDB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4396) ==23652== by 0x54C704D: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:3798) ==23652== by 0x807A4AB: kt::App::notify(QObject*, QEvent*) (app.cpp:97) ==23652== by 0x51E5B3A: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:732) ==23652== by 0x5217AD5: QTimerInfoList::activateTimers() (qcoreapplication.h:215) ==23652== by 0x5214873: timerSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:184) ==23652== by 0x6A32854: g_main_context_dispatch (in /lib/libglib-2.0.so.0.2600.1) ==23652== by 0x6A36667: ??? (in /lib/libglib-2.0.so.0.2600.1) ==23652== by 0x6A36847: g_main_context_iteration (in /lib/libglib-2.0.so.0.2600.1) ==23652== by 0x5214564: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:415) ==23652== by 0x5582BE4: QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qguieventdispatcher_glib.cpp:204) ==23652== by 0x51E4608: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==23652== by 0x51E4A89: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==23652== by 0x51E900E: QCoreApplication::exec() (qcoreapplication.cpp:1009) ==23652== by 0x54BFE06: QApplication::exec() (qapplication.cpp:3672) ==23652== by 0x8069010: main (main.cpp:177) ==23652== Address 0x1 is not stack'd, malloc'd or (recently) free'd ==23652== ==23652== ==23652== HEAP SUMMARY: ==23652== in use at exit: 6,075,061 bytes in 90,830 blocks ==23652== total heap usage: 442,262 allocs, 351,432 frees, 76,249,449 bytes allocated ==23652== ==23652== LEAK SUMMARY: ==23652== definitely lost: 45,217 bytes in 514 blocks ==23652== indirectly lost: 1,012,511 bytes in 3,578 blocks ==23652== possibly lost: 4,308,730 bytes in 73,769 blocks ==23652== still reachable: 708,603 bytes in 12,969 blocks ==23652== suppressed: 0 bytes in 0 blocks ==23652== Rerun with --leak-check=full to see details of leaked memory ==23652== ==23652== For counts of detected and suppressed errors, rerun with: -v ==23652== Use --track-origins=yes to see where uninitialised values come from ==23652== ERROR SUMMARY: 36 errors from 3 contexts (suppressed: 336 from 13) Was this with a crash ? Yes. It crashed and called DrKonqi to submit the crash report. That's where the backtrace above came from. > I did not get this version as an Ubuntu package, I compiled it from source, but
> there were no problems with the compile/install.
Did you also compile and install libktorrent 1.1 ?
Yes, I compiled and installed libktorrent 1.1 first. Is an older version of libktorrent still installed ? Yes. I have the 1.0.5 libktorrent installed. It is the official ubuntu package, so it is not in /usr/local. When I compiled the new version of libktorrent and ktorrent itself I made sure the path setting was /usr/local when I ran cmake for both of them. That should prevent any confusion, correct? Things could get hairy with the plugins. Try uninstalling libktorrent 1.0.5, and see what happens. Looks like that fixes the problem. |