Bug 286597

Summary: kget crashes on startup
Product: [Applications] ktorrent Reporter: Mebuntu <salsa_temps>
Component: generalAssignee: Joris Guisson <joris.guisson>
Status: RESOLVED FIXED    
Severity: crash CC: e.baruffi, l.appelhans
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Mebuntu 2011-11-14 14:23:42 UTC
Application: kget (2.7.2)
KDE Platform Version: 4.7.2 (4.7.2)
Qt Version: 4.7.4
Operating System: Linux 3.1.0-030100-generic x86_64
Distribution: Ubuntu 11.10

-- Information about the crash:
14th November - just updated latest Oneiric packages and rebooted machine.  Kget crashed during startup and will not start again.

The crash can be reproduced every time.

-- Backtrace:
Application: KGet (kget), signal: Aborted
pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
	in ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
[Current thread is 1 (Thread 0x7f8ea30e77a0 (LWP 2868))]

Thread 2 (Thread 0x7f8e76cc3700 (LWP 2876)):
[KCrash Handler]
#6  0x00007f8e9e43e3a5 in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#7  0x00007f8e9e441b0b in __GI_abort () at abort.c:92
#8  0x00007f8e9ecfcd7d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#9  0x00007f8e9ecfaf26 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#10 0x00007f8e9ecfaf53 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#11 0x00007f8e9ecfb96f in __cxa_pure_virtual () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007f8e88c39816 in endline (this=0xa35a10) at ../../src/util/log.cpp:160
#13 bt::endl (lg=...) at ../../src/util/log.cpp:222
#14 0x00007f8e88cc095e in operator<< (func=<optimized out>, this=<optimized out>) at ../../src/util/log.h:140
#15 bt::CacheFile::preallocate (this=0x1180de0) at ../../src/diskio/cachefile.cpp:461
#16 0x00007f8e88cb598b in bt::MultiFileCache::preallocateDiskSpace (this=0x116ee40, prealloc=0x117bc40) at ../../src/diskio/multifilecache.cpp:804
#17 0x00007f8e88cbcc4d in bt::PreallocationThread::run (this=0x117bc40) at ../../src/diskio/preallocationthread.cpp:53
#18 0x00007f8e9fcacd05 in QThreadPrivate::start (arg=0x117bc40) at thread/qthread_unix.cpp:331
#19 0x00007f8ea0d9cefc in start_thread (arg=0x7f8e76cc3700) at pthread_create.c:304
#20 0x00007f8e9e4e989d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#21 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f8ea30e77a0 (LWP 2868)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f8e9fcabd13 in QMutexPrivate::wait (this=0xa35ef0, timeout=-1) at thread/qmutex_unix.cpp:84
#2  0x00007f8e9fca8365 in QMutex::lock (this=0xa35a40) at thread/qmutex.cpp:204
#3  0x00007f8e88c3ad0e in bt::Out (arg=<optimized out>) at ../../src/util/log.cpp:270
#4  0x00007f8e88c4c12c in net::ServerSocket::bind (this=0x7f8e78003b20, addr=...) at ../../src/net/serversocket.cpp:93
#5  0x00007f8e88c4c33e in net::ServerSocket::bind (this=0x7f8e78003b20, ip=<optimized out>, port=<optimized out>) at ../../src/net/serversocket.cpp:83
#6  0x00007f8e88c7ed21 in add (port=6881, ip=..., this=0x7f8e78002d90) at ../../src/torrent/server.cpp:70
#7  bt::Server::changePort (this=0x7f8e78002920, p=6881) at ../../src/torrent/server.cpp:103
#8  0x00007f8e88f8a6ea in BTTransfer::btTransferInit (this=0xd8c420, src=<optimized out>, data=<optimized out>) at ../../../../kget/transfer-plugins/bittorrent/bttransfer.cpp:425
#9  0x00007f8e88f8b9ef in BTTransfer::start (this=0xd8c420) at ../../../../kget/transfer-plugins/bittorrent/bttransfer.cpp:139
#10 0x00007f8ea1f3ffca in Scheduler::updateQueue (this=0x8631c0, queue=0xa34c70) at ../../kget/core/scheduler.cpp:305
#11 0x00007f8ea1f2bf3a in JobQueue::append (this=0xa34c70, jobs=...) at ../../kget/core/jobqueue.cpp:95
#12 0x00007f8ea1f4d40f in TransferGroup::append (this=0xa34c70, transfers=<optimized out>) at ../../kget/core/transfergroup.cpp:102
#13 0x00007f8ea1f4331c in TransferTreeModel::addTransfers (this=0xa0bb00, transfers=..., group=0xa34c70) at ../../kget/core/transfertreemodel.cpp:240
#14 0x00007f8ea1f39038 in KGet::createTransfers (dataItems=<optimized out>) at ../../kget/core/kget.cpp:915
#15 0x00007f8ea1f3c24f in KGet::addTransfers (elements=<optimized out>, groupName=...) at ../../kget/core/kget.cpp:277
#16 0x00007f8ea1f4ddbc in TransferGroup::load (this=0xa34c70, e=<optimized out>) at ../../kget/core/transfergroup.cpp:399
#17 0x00007f8ea1f2edf1 in KGet::load (filename=<optimized out>) at ../../kget/core/kget.cpp:559
#18 0x00000000004af0e1 in MainWindow::init (this=0x9f63d0) at ../../kget/mainwindow.cpp:357
#19 0x00000000004b48da in KGetApp::newInstance (this=0x7fff37e3f610) at ../../kget/main.cpp:71
#20 0x00007f8ea2ae4a52 in KUniqueApplicationAdaptor::newInstance (this=0x98ad40, asn_id=<optimized out>, args=...) at ../../kdeui/kernel/kuniqueapplication.cpp:442
#21 0x00007f8ea2ae4af2 in KUniqueApplicationAdaptor::qt_metacall (this=0x98ad40, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fff37e3ea70) at ./kuniqueapplication_p.moc:81
#22 0x00007f8ea00eb0e9 in QDBusConnectionPrivate::deliverCall (this=0x8b4a90, object=0x98ad40, msg=..., metaTypes=..., slotIdx=4) at qdbusintegrator.cpp:942
#23 0x00007f8ea00ec19b in QDBusConnectionPrivate::activateCall (this=0x8b4a90, object=0x98ad40, flags=337, msg=...) at qdbusintegrator.cpp:845
#24 0x00007f8ea00ecb22 in QDBusConnectionPrivate::activateObject (this=0x8b4a90, node=..., msg=..., pathStartPos=<optimized out>) at qdbusintegrator.cpp:1410
#25 0x00007f8ea00ecbf8 in QDBusActivateObjectEvent::placeMetaCall (this=0x9f64c0) at qdbusintegrator.cpp:1524
#26 0x00007f8e9fdaaa5e in QObject::event (this=0x7fff37e3f610, e=<optimized out>) at kernel/qobject.cpp:1217
#27 0x00007f8e9f1482d4 in QApplication::event (this=0x7fff37e3f610, e=0x9f64c0) at kernel/qapplication.cpp:2527
#28 0x00007f8e9f144424 in notify_helper (e=0x9f64c0, receiver=0x7fff37e3f610, this=0x8cb460) at kernel/qapplication.cpp:4486
#29 QApplicationPrivate::notify_helper (this=0x8cb460, receiver=0x7fff37e3f610, e=0x9f64c0) at kernel/qapplication.cpp:4458
#30 0x00007f8e9f149291 in QApplication::notify (this=0x7fff37e3f610, receiver=0x7fff37e3f610, e=0x9f64c0) at kernel/qapplication.cpp:4365
#31 0x00007f8ea2adf126 in KApplication::notify (this=0x7fff37e3f610, receiver=0x7fff37e3f610, event=0x9f64c0) at ../../kdeui/kernel/kapplication.cpp:311
#32 0x00007f8e9fd93afc in QCoreApplication::notifyInternal (this=0x7fff37e3f610, receiver=0x7fff37e3f610, event=0x9f64c0) at kernel/qcoreapplication.cpp:787
#33 0x00007f8e9fd9751f in sendEvent (event=0x9f64c0, receiver=0x7fff37e3f610) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#34 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x858400) at kernel/qcoreapplication.cpp:1428
#35 0x00007f8e9fdbea73 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#36 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:277
#37 0x00007f8e9a228a5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007f8e9a229258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#39 0x00007f8e9a229429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#40 0x00007f8e9fdbeed6 in QEventDispatcherGlib::processEvents (this=0x859f10, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#41 0x00007f8e9f1ec07e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=<optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#42 0x00007f8e9fd92cf2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#43 0x00007f8e9fd92ef7 in QEventLoop::exec (this=0x7fff37e3f590, flags=...) at kernel/qeventloop.cpp:201
#44 0x00007f8e9fd97789 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064
#45 0x0000000000429601 in main (argc=5, argv=0x7fff37e3fc78) at ../../kget/main.cpp:168

Possible duplicates by query: bug 281501.

Reported using DrKonqi
Comment 1 Lukas Appelhans 2011-12-19 15:57:32 UTC
Reassigning, it's a crash in libktorrent.

Lukas
Comment 2 Joris Guisson 2011-12-20 17:49:59 UTC
Not quite clear what is the problem, let me see if I can reproduce it.
Comment 3 Joris Guisson 2011-12-20 17:56:34 UTC
I see that bt::InitLog is called on two places in KGet's bittorrent plugin, is it possible that both of these are called ?
Comment 4 Lukas Appelhans 2012-01-03 13:29:57 UTC
No, BTDataSource is currently unused and not even compiled I think...

It is only called in BTTransfer for Bittorrent transfers.

Lukas
Comment 5 Joris Guisson 2012-01-03 17:20:47 UTC
*** Bug 289365 has been marked as a duplicate of this bug. ***
Comment 6 Joris Guisson 2012-01-03 17:36:27 UTC
Git commit fe020cd90b30bd99c8eb2fe3b41a94d123bfe7c0 by Joris Guisson.
Committed on 03/01/2012 at 18:36.
Pushed by guisson into branch 'master'.

- Fix crash due to race condition in logging initialization

M  +1    -0    ChangeLog
M  +2    -0    src/util/log.cpp

http://commits.kde.org/libktorrent/fe020cd90b30bd99c8eb2fe3b41a94d123bfe7c0