<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><tt>Hi,</tt></p>
<p>I attached with gdb and I think the process gets stuck trying to
empty <dfn class="type def highlight"
id="WebCore::QNetworkReplyHandlerCallQueue"
data-ref="WebCore::QNetworkReplyHandlerCallQueue">QNetworkReplyHandlerCallQueue::</dfn><dfn
class="decl field highlight"
id="WebCore::QNetworkReplyHandlerCallQueue::m_enqueuedCalls"
data-ref="WebCore::QNetworkReplyHandlerCallQueue::m_enqueuedCalls">m_enqueuedCalls
from inside </dfn><dfn class="decl field highlight"
id="WebCore::QNetworkReplyHandlerCallQueue::m_enqueuedCalls"
data-ref="WebCore::QNetworkReplyHandlerCallQueue::m_enqueuedCalls"><a
class="type"
href="https://code.woboq.org/qt5/qtwebkit/Source/WebCore/platform/network/qt/QNetworkReplyHandler.h.html#WebCore::QNetworkReplyHandlerCallQueue"
data-ref="WebCore::QNetworkReplyHandlerCallQueue">QNetworkReplyHandlerCallQueue</a>::<dfn
class="decl def fn"
id="_ZN7WebCore29QNetworkReplyHandlerCallQueue5flushEv"
data-ref="_ZN7WebCore29QNetworkReplyHandlerCallQueue5flushEv">flush</dfn>(),
spinning in the loop at lines 257-258.</dfn></p>
<p>Here's from the gdb session:<tt><br>
</tt></p>
<p><tt>(gdb) where</tt><tt><br>
</tt><tt>#0 0x00007ffff21837b2 in __GI___fxstat
(vers=vers@entry=1, fd=fd@entry=48,
buf=buf@entry=0x7fffffffd160) at
../sysdeps/unix/sysv/linux/wordsize-64/fxstat.c:35</tt><tt><br>
</tt><tt>#1 0x00007ffff2f2fd1a in fstat64
(__statbuf=0x7fffffffd160, __fd=<optimized out>) at
/usr/include/x86_64-linux-gnu/sys/stat.h:514</tt><tt><br>
</tt><tt>#2 0x00007ffff2f2fd1a in
QFileSystemEngine::fillMetaData(int, QFileSystemMetaData&)
(fd=fd@entry=48, data=...) at io/qfilesystemengine.cpp:217</tt><tt><br>
</tt><tt>#3 0x00007ffff2f47a2c in
QFSFileEnginePrivate::doStat(QFlags<QFileSystemMetaData::MetaDataFlag>)
const (this=this@entry=0x7fffdc0144c0, flags=...,
flags@entry=...)</tt><tt><br>
</tt><tt> at io/qfsfileengine_unix.cpp:508</tt><tt><br>
</tt><tt>#4 0x00007ffff2f28385 in
QFSFileEnginePrivate::sizeFdFh() const (this=0x7fffdc0144c0) at
io/qfsfileengine.cpp:484</tt><tt><br>
</tt><tt>#5 0x00007ffff2ed827c in QFileDevice::size() const
(this=<optimized out>) at io/qfiledevice.cpp:608</tt><tt><br>
</tt><tt>#6 0x00007fffc92e45ff in
WebCore::QNetworkReplyHandler::forwardData() () at
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:712</tt><tt><br>
</tt><tt>#7 0x00007fffc92e3f5c in
WebCore::QNetworkReplyHandlerCallQueue::flush() () at
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:258</tt><tt><br>
</tt><tt>#8 0x00007fffc92e5d48 in
WebCore::QNetworkReplyHandlerCallQueue::flush() () at
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:393</tt><tt><br>
</tt><tt>#9 0x00007fffc92e5d48 in
WebCore::QNetworkReplyHandlerCallQueue::unlock() () at
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:238</tt><tt><br>
</tt><tt>#10 0x00007fffc92e5d48 in
WebCore::QueueLocker::~QueueLocker() () at
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:266</tt><tt><br>
</tt><tt>#11 0x00007fffc92e5d48 in
WebCore::QNetworkReplyWrapper::emitMetaDataChanged() () at
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:388</tt><tt><br>
</tt><tt>#12 0x00007fffc92e6090 in
WebCore::QNetworkReplyWrapper::receiveMetaData() () at
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:353</tt><tt><br>
</tt><tt>#13 0x00007ffff2febd55 in QMetaObject::activate(QObject*,
int, int, void**) (sender=0x5555569b9970,
signalOffset=<optimized out>,
local_signal_index=<optimized out>, argv=<optimized
out>)</tt><tt><br>
</tt><tt> at kernel/qobject.cpp:3766</tt><tt><br>
</tt><tt>#14 0x00007ffff2fec8c2 in QObject::event(QEvent*)
(this=0x5555569b9970, e=<optimized out>) at
kernel/qobject.cpp:1246</tt><tt><br>
</tt><tt>#15 0x00007ffff3cd859c in
QApplicationPrivate::notify_helper(QObject*, QEvent*) () at
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5</tt><tt><br>
</tt><tt>#16 0x00007ffff3cdfe64 in QApplication::notify(QObject*,
QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5</tt><tt><br>
</tt><tt>#17 0x00007ffff2fbd258 in
QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x5555569b9970, event=event@entry=0x555556f80e50) at
kernel/qcoreapplication.cpp:1018</tt><tt><br>
</tt><tt>#18 0x00007ffff2fbf9cd in
QCoreApplication::sendEvent(QObject*, QEvent*)
(event=0x555556f80e50, receiver=<optimized out>)</tt><tt><br>
</tt><tt> at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:233</tt><tt><br>
</tt><tt>#19 0x00007ffff2fbf9cd in
QCoreApplicationPrivate::sendPostedEvents(QObject*, int,
QThreadData*) (receiver=receiver@entry=0x0,
event_type=event_type@entry=0, data=0x55555588c720)</tt><tt><br>
</tt><tt> at kernel/qcoreapplication.cpp:1678</tt><tt><br>
</tt><tt>#20 0x00007ffff2fbff58 in
QCoreApplication::sendPostedEvents(QObject*, int)
(receiver=receiver@entry=0x0, event_type=event_type@entry=0) at
kernel/qcoreapplication.cpp:1532</tt><tt><br>
</tt><tt>#21 0x00007ffff3016ac3 in
postEventSourceDispatch(GSource*, GSourceFunc, gpointer)
(s=0x5555558df6a0) at kernel/qeventdispatcher_glib.cpp:276</tt><tt><br>
</tt><tt>#22 0x00007fffebf69fa7 in g_main_context_dispatch () at
/lib/x86_64-linux-gnu/libglib-2.0.so.0</tt><tt><br>
</tt><tt>#23 0x00007fffebf6a1e0 in () at
/lib/x86_64-linux-gnu/libglib-2.0.so.0</tt><tt><br>
</tt><tt>#24 0x00007fffebf6a26c in g_main_context_iteration () at
/lib/x86_64-linux-gnu/libglib-2.0.so.0</tt><tt><br>
</tt><tt>#25 0x00007ffff30160ef in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x5555558dc090, flags=...) at
kernel/qeventdispatcher_glib.cpp:423</tt><tt><br>
</tt><tt>#26 0x00007ffff2fbb2aa in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7fffffffd9e0, flags=..., flags@entry=...) at
kernel/qeventloop.cpp:212</tt><tt><br>
</tt><tt>#27 0x00007ffff2fc4214 in QCoreApplication::exec() () at
kernel/qcoreapplication.cpp:1291</tt><tt><br>
</tt><tt>#28 0x000055555559702a in ()</tt><tt><br>
</tt><tt>#29 0x00007ffff20bdf2a in __libc_start_main (main=</tt><tt><br>
</tt><tt> 0x555555594d60, argc=1, argv=0x7fffffffdd78,
init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fffffffdd68) at
../csu/libc-start.c:310</tt><tt><br>
</tt><tt>#30 0x0000555555597a0a in _start ()</tt></p>
<p><tt><br>
</tt><tt>(gdb) info threads<br>
Id Target Id Frame <br>
* 1 Thread 0x7ffff7f7b3c0 (LWP 21757) "ktorrent"
0x00007ffff21837b2 in __GI___fxstat (vers=vers@entry=1,
fd=fd@entry=48, buf=buf@entry=0x7fffffffd160)<br>
at ../sysdeps/unix/sysv/linux/wordsize-64/fxstat.c:35<br>
2 Thread 0x7fffe1623700 (LWP 21760) "QXcbEventReader"
0x00007ffff21883fb in __GI___poll (fds=0x7fffe1622b70, nfds=1,
timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29<br>
3 Thread 0x7fffda38f700 (LWP 21761) "QDBusConnection"
0x00007ffff21883fb in __GI___poll (fds=0x7fffd4031e80, nfds=5,
timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29<br>
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<br>
6 Thread 0x7fffd917e700 (LWP 21764) "ktorrent"
0x00007ffff2160950 in __GI___nanosleep
(requested_time=0x7fffd917dbe0, remaining=0x7fffd917dbe0)<br>
at ../sysdeps/unix/sysv/linux/nanosleep.c:27<br>
</tt></p>
<p><tt>(gdb) thread 2<br>
[Switching to thread 2 (Thread 0x7fffe1623700 (LWP 21760))]<br>
#0 0x00007ffff21883fb in __GI___poll (fds=0x7fffe1622b70,
nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29<br>
29 ../sysdeps/unix/sysv/linux/poll.c: No such file or
directory.<br>
(gdb) where<br>
#0 0x00007ffff21883fb in __GI___poll (fds=0x7fffe1622b70,
nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29<br>
#1 0x00007fffee6fe150 in () at
/usr/lib/x86_64-linux-gnu/libxcb.so.1<br>
#2 0x00007fffee6ffee9 in xcb_wait_for_event () at
/usr/lib/x86_64-linux-gnu/libxcb.so.1<br>
#3 0x00007fffe3785029 in () at
/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5<br>
#4 0x00007ffff2ddf22d in QThreadPrivate::start(void*)
(arg=0x5555558b3700) at thread/qthread_unix.cpp:368<br>
#5 0x00007fffedc9e518 in start_thread (arg=0x7fffe1623700) at
pthread_create.c:465<br>
#6 0x00007ffff219297f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95</tt></p>
<p><tt>(gdb) thread 3<br>
[Switching to thread 3 (Thread 0x7fffda38f700 (LWP 21761))]<br>
#0 0x00007ffff21883fb in __GI___poll (fds=0x7fffd4031e80,
nfds=5, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29<br>
29 in ../sysdeps/unix/sysv/linux/poll.c<br>
(gdb) where<br>
#0 0x00007ffff21883fb in __GI___poll (fds=0x7fffd4031e80,
nfds=5, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29<br>
#1 0x00007fffebf6a159 in () at
/lib/x86_64-linux-gnu/libglib-2.0.so.0<br>
#2 0x00007fffebf6a26c in g_main_context_iteration () at
/lib/x86_64-linux-gnu/libglib-2.0.so.0<br>
#3 0x00007ffff30160ef in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x7fffd4000b20, flags=...) at
kernel/qeventdispatcher_glib.cpp:423<br>
#4 0x00007ffff2fbb2aa in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7fffda38ec40, flags=..., flags@entry=...) at
kernel/qeventloop.cpp:212<br>
#5 0x00007ffff2dda35a in QThread::exec() (this=<optimized
out>) at thread/qthread.cpp:515<br>
#6 0x00007ffff43dee45 in () at
/usr/lib/x86_64-linux-gnu/libQt5DBus.so.5<br>
#7 0x00007ffff2ddf22d in QThreadPrivate::start(void*)
(arg=0x7ffff4651d60) at thread/qthread_unix.cpp:368<br>
#8 0x00007fffedc9e518 in start_thread (arg=0x7fffda38f700) at
pthread_create.c:465<br>
#9 0x00007ffff219297f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95<br>
</tt></p>
<p><tt>(gdb) thread 5<br>
[Switching to thread 5 (Thread 0x7fffd897d700 (LWP 21763))]<br>
#0 0x00007ffff21883fb in __GI___poll (fds=0x7fffcc002ee0,
nfds=1, timeout=9779) at ../sysdeps/unix/sysv/linux/poll.c:29<br>
29 in ../sysdeps/unix/sysv/linux/poll.c<br>
(gdb) where<br>
#0 0x00007ffff21883fb in __GI___poll (fds=0x7fffcc002ee0,
nfds=1, timeout=9779) at ../sysdeps/unix/sysv/linux/poll.c:29<br>
#1 0x00007fffebf6a159 in () at
/lib/x86_64-linux-gnu/libglib-2.0.so.0<br>
#2 0x00007fffebf6a26c in g_main_context_iteration () at
/lib/x86_64-linux-gnu/libglib-2.0.so.0<br>
#3 0x00007ffff30160ef in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x7fffcc004bc0, flags=...) at
kernel/qeventdispatcher_glib.cpp:423<br>
#4 0x00007ffff2fbb2aa in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7fffd897cc70, flags=..., flags@entry=...) at
kernel/qeventloop.cpp:212<br>
#5 0x00007ffff2dda35a in QThread::exec() (this=<optimized
out>) at thread/qthread.cpp:515<br>
#6 0x00007ffff2ddf22d in QThreadPrivate::start(void*)
(arg=0x555555957ca0) at thread/qthread_unix.cpp:368<br>
#7 0x00007fffedc9e518 in start_thread (arg=0x7fffd897d700) at
pthread_create.c:465<br>
#8 0x00007ffff219297f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95<br>
</tt></p>
<p><tt><br>
</tt></p>
<p><tt>Spinning inside flush:<br>
(gdb) n<br>
257 in
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp<br>
(gdb) n<br>
258 in
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp<br>
(gdb) n<br>
257 in
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp<br>
(gdb) n<br>
258 in
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp<br>
(gdb) n<br>
257 in
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp<br>
(gdb) finish<br>
Run till exit from #0
WebCore::QNetworkReplyHandlerCallQueue::flush () at
../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:257<br>
^C<br>
Thread 1 "ktorrent" received signal SIGINT, Interrupt.<br>
0x00007ffff2183f68 in __GI___libc_read (fd=fd@entry=48,
buf=buf@entry=0x55555703ede8, nbytes=nbytes@entry=16384) at
../sysdeps/unix/sysv/linux/read.c:26<br>
26 ../sysdeps/unix/sysv/linux/read.c: No such file or
directory.</tt></p>
<p><tt>Calling gdb finish with that stack will never end.<br>
</tt></p>
<p><tt>Thank you,<br>
Alex<br>
</tt></p>
</body>
</html>