[Pkg-kde-extras] Bug#884488: [ktorrent] Freezes at start

Alex Dănilă alex.danila at gmail.com
Sun Dec 24 17:20:11 UTC 2017


Hi,

I attached with gdb and I think the process gets stuck trying to empty 
QNetworkReplyHandlerCallQueue::m_enqueuedCalls from inside 
QNetworkReplyHandlerCallQueue 
<https://code.woboq.org/qt5/qtwebkit/Source/WebCore/platform/network/qt/QNetworkReplyHandler.h.html#WebCore::QNetworkReplyHandlerCallQueue>::flush(), 
spinning in the loop at lines 257-258.

Here's from the gdb session:

(gdb) where
#0  0x00007ffff21837b2 in __GI___fxstat (vers=vers at entry=1, 
fd=fd at entry=48, buf=buf at entry=0x7fffffffd160) at 
../sysdeps/unix/sysv/linux/wordsize-64/fxstat.c:35
#1  0x00007ffff2f2fd1a in fstat64 (__statbuf=0x7fffffffd160, 
__fd=<optimized out>) at /usr/include/x86_64-linux-gnu/sys/stat.h:514
#2  0x00007ffff2f2fd1a in QFileSystemEngine::fillMetaData(int, 
QFileSystemMetaData&) (fd=fd at entry=48, data=...) at 
io/qfilesystemengine.cpp:217
#3  0x00007ffff2f47a2c in 
QFSFileEnginePrivate::doStat(QFlags<QFileSystemMetaData::MetaDataFlag>) 
const (this=this at entry=0x7fffdc0144c0, flags=..., flags at entry=...)
     at io/qfsfileengine_unix.cpp:508
#4  0x00007ffff2f28385 in QFSFileEnginePrivate::sizeFdFh() const 
(this=0x7fffdc0144c0) at io/qfsfileengine.cpp:484
#5  0x00007ffff2ed827c in QFileDevice::size() const (this=<optimized 
out>) at io/qfiledevice.cpp:608
#6  0x00007fffc92e45ff in WebCore::QNetworkReplyHandler::forwardData() 
() at ../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:712
#7  0x00007fffc92e3f5c in 
WebCore::QNetworkReplyHandlerCallQueue::flush() () at 
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:258
#8  0x00007fffc92e5d48 in 
WebCore::QNetworkReplyHandlerCallQueue::flush() () at 
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:393
#9  0x00007fffc92e5d48 in 
WebCore::QNetworkReplyHandlerCallQueue::unlock() () at 
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:238
#10 0x00007fffc92e5d48 in WebCore::QueueLocker::~QueueLocker() () at 
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:266
#11 0x00007fffc92e5d48 in 
WebCore::QNetworkReplyWrapper::emitMetaDataChanged() () at 
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:388
#12 0x00007fffc92e6090 in 
WebCore::QNetworkReplyWrapper::receiveMetaData() () at 
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:353
#13 0x00007ffff2febd55 in QMetaObject::activate(QObject*, int, int, 
void**) (sender=0x5555569b9970, signalOffset=<optimized out>, 
local_signal_index=<optimized out>, argv=<optimized out>)
     at kernel/qobject.cpp:3766
#14 0x00007ffff2fec8c2 in QObject::event(QEvent*) (this=0x5555569b9970, 
e=<optimized out>) at kernel/qobject.cpp:1246
#15 0x00007ffff3cd859c in QApplicationPrivate::notify_helper(QObject*, 
QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff3cdfe64 in QApplication::notify(QObject*, QEvent*) () at 
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff2fbd258 in QCoreApplication::notifyInternal2(QObject*, 
QEvent*) (receiver=0x5555569b9970, event=event at entry=0x555556f80e50) at 
kernel/qcoreapplication.cpp:1018
#18 0x00007ffff2fbf9cd in QCoreApplication::sendEvent(QObject*, QEvent*) 
(event=0x555556f80e50, receiver=<optimized out>)
     at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:233
#19 0x00007ffff2fbf9cd in 
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) 
(receiver=receiver at entry=0x0, event_type=event_type at entry=0, 
data=0x55555588c720)
     at kernel/qcoreapplication.cpp:1678
#20 0x00007ffff2fbff58 in QCoreApplication::sendPostedEvents(QObject*, 
int) (receiver=receiver at entry=0x0, event_type=event_type at entry=0) at 
kernel/qcoreapplication.cpp:1532
#21 0x00007ffff3016ac3 in postEventSourceDispatch(GSource*, GSourceFunc, 
gpointer) (s=0x5555558df6a0) at kernel/qeventdispatcher_glib.cpp:276
#22 0x00007fffebf69fa7 in g_main_context_dispatch () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007fffebf6a1e0 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007fffebf6a26c in g_main_context_iteration () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007ffff30160ef in 
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) 
(this=0x5555558dc090, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#26 0x00007ffff2fbb2aa in 
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) 
(this=this at entry=0x7fffffffd9e0, flags=..., flags at entry=...) at 
kernel/qeventloop.cpp:212
#27 0x00007ffff2fc4214 in QCoreApplication::exec() () at 
kernel/qcoreapplication.cpp:1291
#28 0x000055555559702a in  ()
#29 0x00007ffff20bdf2a in __libc_start_main (main=
     0x555555594d60, argc=1, argv=0x7fffffffdd78, init=<optimized out>, 
fini=<optimized out>, rtld_fini=<optimized out>, 
stack_end=0x7fffffffdd68) at ../csu/libc-start.c:310
#30 0x0000555555597a0a in _start ()


(gdb) info threads
   Id   Target Id         Frame
* 1    Thread 0x7ffff7f7b3c0 (LWP 21757) "ktorrent" 0x00007ffff21837b2 
in __GI___fxstat (vers=vers at entry=1, fd=fd at entry=48, 
buf=buf at entry=0x7fffffffd160)
     at ../sysdeps/unix/sysv/linux/wordsize-64/fxstat.c:35
   2    Thread 0x7fffe1623700 (LWP 21760) "QXcbEventReader" 
0x00007ffff21883fb in __GI___poll (fds=0x7fffe1622b70, nfds=1, 
timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
   3    Thread 0x7fffda38f700 (LWP 21761) "QDBusConnection" 
0x00007ffff21883fb in __GI___poll (fds=0x7fffd4031e80, nfds=5, 
timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
   5    Thread 0x7fffd897d700 (LWP 21763) "Qt bearer threa" 
0x00007ffff21883fb in __GI___poll (fds=0x7fffcc002ee0, nfds=1, 
timeout=9779) at ../sysdeps/unix/sysv/linux/poll.c:29
   6    Thread 0x7fffd917e700 (LWP 21764) "ktorrent" 0x00007ffff2160950 
in __GI___nanosleep (requested_time=0x7fffd917dbe0, 
remaining=0x7fffd917dbe0)
     at ../sysdeps/unix/sysv/linux/nanosleep.c:27

(gdb) thread 2
[Switching to thread 2 (Thread 0x7fffe1623700 (LWP 21760))]
#0  0x00007ffff21883fb in __GI___poll (fds=0x7fffe1622b70, nfds=1, 
timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
29      ../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
(gdb) where
#0  0x00007ffff21883fb in __GI___poll (fds=0x7fffe1622b70, nfds=1, 
timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffee6fe150 in  () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007fffee6ffee9 in xcb_wait_for_event () at 
/usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fffe3785029 in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007ffff2ddf22d in QThreadPrivate::start(void*) 
(arg=0x5555558b3700) at thread/qthread_unix.cpp:368
#5  0x00007fffedc9e518 in start_thread (arg=0x7fffe1623700) at 
pthread_create.c:465
#6  0x00007ffff219297f in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

(gdb) thread 3
[Switching to thread 3 (Thread 0x7fffda38f700 (LWP 21761))]
#0  0x00007ffff21883fb in __GI___poll (fds=0x7fffd4031e80, nfds=5, 
timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
29      in ../sysdeps/unix/sysv/linux/poll.c
(gdb) where
#0  0x00007ffff21883fb in __GI___poll (fds=0x7fffd4031e80, nfds=5, 
timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffebf6a159 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffebf6a26c in g_main_context_iteration () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff30160ef in 
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) 
(this=0x7fffd4000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007ffff2fbb2aa in 
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) 
(this=this at entry=0x7fffda38ec40, flags=..., flags at entry=...) at 
kernel/qeventloop.cpp:212
#5  0x00007ffff2dda35a in QThread::exec() (this=<optimized out>) at 
thread/qthread.cpp:515
#6  0x00007ffff43dee45 in  () at /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007ffff2ddf22d in QThreadPrivate::start(void*) 
(arg=0x7ffff4651d60) at thread/qthread_unix.cpp:368
#8  0x00007fffedc9e518 in start_thread (arg=0x7fffda38f700) at 
pthread_create.c:465
#9  0x00007ffff219297f in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

(gdb) thread 5
[Switching to thread 5 (Thread 0x7fffd897d700 (LWP 21763))]
#0  0x00007ffff21883fb in __GI___poll (fds=0x7fffcc002ee0, nfds=1, 
timeout=9779) at ../sysdeps/unix/sysv/linux/poll.c:29
29      in ../sysdeps/unix/sysv/linux/poll.c
(gdb) where
#0  0x00007ffff21883fb in __GI___poll (fds=0x7fffcc002ee0, nfds=1, 
timeout=9779) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffebf6a159 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffebf6a26c in g_main_context_iteration () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff30160ef in 
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) 
(this=0x7fffcc004bc0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#4  0x00007ffff2fbb2aa in 
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) 
(this=this at entry=0x7fffd897cc70, flags=..., flags at entry=...) at 
kernel/qeventloop.cpp:212
#5  0x00007ffff2dda35a in QThread::exec() (this=<optimized out>) at 
thread/qthread.cpp:515
#6  0x00007ffff2ddf22d in QThreadPrivate::start(void*) 
(arg=0x555555957ca0) at thread/qthread_unix.cpp:368
#7  0x00007fffedc9e518 in start_thread (arg=0x7fffd897d700) at 
pthread_create.c:465
#8  0x00007ffff219297f in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:95


Spinning inside flush:
(gdb) n
257     in ../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
(gdb) n
258     in ../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
(gdb) n
257     in ../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
(gdb) n
258     in ../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
(gdb) n
257     in ../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp
(gdb) finish
Run till exit from #0 WebCore::QNetworkReplyHandlerCallQueue::flush () 
at ../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:257
^C
Thread 1 "ktorrent" received signal SIGINT, Interrupt.
0x00007ffff2183f68 in __GI___libc_read (fd=fd at entry=48, 
buf=buf at entry=0x55555703ede8, nbytes=nbytes at entry=16384) at 
../sysdeps/unix/sysv/linux/read.c:26
26      ../sysdeps/unix/sysv/linux/read.c: No such file or directory.

Calling gdb finish with that stack will never end.

Thank you,
Alex

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-kde-extras/attachments/20171224/3dab2a43/attachment.html>


More information about the pkg-kde-extras mailing list