[konversation] [Bug 371473] New: indefinite loop in function Konversation::DCC::TransferRecv::createDirs 396 KIO Job exec

Zhang Jingqiang via KDE Bugzilla bugzilla_noreply at kde.org
Sat Oct 22 03:18:24 UTC 2016


https://bugs.kde.org/show_bug.cgi?id=371473

            Bug ID: 371473
           Summary: indefinite loop in function
                    Konversation::DCC::TransferRecv::createDirs 396 KIO
                    Job exec
           Product: konversation
           Version: 1.6
          Platform: Other
                OS: Linux
            Status: UNCONFIRMED
          Severity: crash
          Priority: NOR
         Component: dcc
          Assignee: b.buschinski at googlemail.com
          Reporter: zh_jq at outlook.com
                CC: konversation-devel at kde.org

There are 5 DCC downloading jobs running.
Then I request another one, which can not be established.
Then the loop occure.

Backtrace 1:
#0  0x00007f9c875618ce in
QWindowSystemInterfacePrivate::getNonUserInputWindowSystemEvent() () from
/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#1  0x00007f9c87561b85 in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#2  0x00007f9c7a05cd60 in ?? () from
/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#3  0x00007f9c82e257d7 in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f9c82e25a40 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f9c82e25aec in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007f9c871fa4ff in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f9c871a219a in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f9c88a3f24e in KJob::exec() () from
/usr/lib/x86_64-linux-gnu/libKF5CoreAddons.so.5
#9  0x0000000000657e54 in Konversation::DCC::TransferRecv::createDirs
(this=this at entry=0x251f940, dirURL=...) at ./src/dcc/transferrecv.cpp:396
#10 0x00000000006582b9 in Konversation::DCC::TransferRecv::prepareLocalKio
(this=this at entry=0x251f940, overwrite=overwrite at entry=false,
    resume=resume at entry=false, startPosition=startPosition at entry=0) at
./src/dcc/transferrecv.cpp:311
#11 0x0000000000658a0f in Konversation::DCC::TransferRecv::start
(this=0x251f940) at ./src/dcc/transferrecv.cpp:296
#12 0x000000000054115d in Server::addDccGet (this=0x2143040, sourceNick=...,
dccArguments=...) at ./src/irc/server.cpp:2249
#13 0x000000000069ebf7 in Server::qt_static_metacall (_o=0x2143040,
_c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at ./obj-x86_64-linux-gnu/src/moc_server.cpp:759
#14 0x00007f9c871d2729 in QObject::event(QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007f9c87b6bbec in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007f9c87b7108f in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007f9c871a4450 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007f9c871a63cc in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007f9c871fa0f3 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007f9c82e257d7 in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007f9c82e25a40 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007f9c82e25aec in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0


Backtrace2:
#0  0x00007f9c865db56d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f9c82e259d6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f9c82e25aec in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f9c871fa4ff in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f9c871a219a in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f9c88a3f24e in KJob::exec() () from
/usr/lib/x86_64-linux-gnu/libKF5CoreAddons.so.5
#6  0x0000000000657e54 in Konversation::DCC::TransferRecv::createDirs
(this=this at entry=0x251f940, dirURL=...) at ./src/dcc/transferrecv.cpp:396
#7  0x00000000006582b9 in Konversation::DCC::TransferRecv::prepareLocalKio
(this=this at entry=0x251f940, overwrite=overwrite at entry=false, 
    resume=resume at entry=false, startPosition=startPosition at entry=0) at
./src/dcc/transferrecv.cpp:311
#8  0x0000000000658a0f in Konversation::DCC::TransferRecv::start
(this=0x251f940) at ./src/dcc/transferrecv.cpp:296
#9  0x000000000054115d in Server::addDccGet (this=0x2143040, sourceNick=...,
dccArguments=...) at ./src/irc/server.cpp:2249
#10 0x000000000069ebf7 in Server::qt_static_metacall (_o=0x2143040,
_c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at ./obj-x86_64-linux-gnu/src/moc_server.cpp:759
#11 0x00007f9c871d2729 in QObject::event(QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007f9c87b6bbec in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007f9c87b7108f in QApplication::notify(QObject*, QEvent*) () from
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007f9c871a4450 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007f9c871a63cc in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007f9c871fa0f3 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007f9c82e257d7 in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007f9c82e25a40 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007f9c82e25aec in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007f9c871fa4ff in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007f9c871a219a in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007f9c88a3f24e in KJob::exec() () from
/usr/lib/x86_64-linux-gnu/libKF5CoreAddons.so.5

Reproducible: Always

Steps to Reproduce:
It's not easy to reproduce, but it had happened many times, if there are many
ongoing downloads, and the new one can not be established.

Actual Results:  
100% loop.
There are some notification about "/home" or "/home/user" directories.
Sometimes the loop will run into an end, sometimes not.


It seems there not any need to call KIO stats, a plain libs stat() call is
enough.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Konversation-devel mailing list