-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/126252/#review89208
-----------------------------------------------------------


Turns out this is not sufficient, the real problem is probably elsewhere.

- Daniel Vrátil


On Dec. 5, 2015, 8:43 p.m., Daniel Vrátil wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/126252/
> -----------------------------------------------------------
> 
> (Updated Dec. 5, 2015, 8:43 p.m.)
> 
> 
> Review request for Telepathy.
> 
> 
> Repository: ktp-text-ui
> 
> 
> Description
> -------
> 
> When joining a MUC room on a server that automatically sends a scrollback of 
> all messages on the channel, the ktp-text-ui gets stuck eventually due to 
> timeouts and a bug somewhere in QtDBus (see the backtrace below). The problem 
> seems to be that the amount of DBus traffic coming from Telepathy combined 
> with the amount of traffic going out from our plugins (through KIO) just 
> causes Qt to never acknowledge that the reply from DBus has arrived. I tried 
> to debug it a bit more, but did not get to anything useful, only found a 
> workaround...
> 
> This patch adds a very dirty workaround to ensure that incoming and outgoing 
> messages are processed by Qt more often thus preventing the bug above and 
> allowing me to join the big-traffic MUC channel from KTp (otherwise I have to 
> use Kopete) **big sad eyes**
> 
> 
> ```
> #0  0x00007fc7f6498b10 in pthread_cond_wait@@GLIBC_2.3.2 () at 
> ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
> #1  0x00007fc7fbdfc29b in QWaitCondition::wait(QMutex*, unsigned long) 
> (time=18446744073709551615, this=0x1d957c0) at 
> thread/qwaitcondition_unix.cpp:136
> #2  0x00007fc7fbdfc29b in QWaitCondition::wait(QMutex*, unsigned long) 
> (this=this@entry=0x1d350e0, mutex=mutex@entry=0x1d350d8, 
> time=time@entry=18446744073709551615)
>     at thread/qwaitcondition_unix.cpp:208
> #3  0x00007fc7fd47e494 in QDBusPendingCallPrivate::waitForFinished() 
> (this=this@entry=0x1d350a0) at qdbuspendingcall.cpp:234
> #4  0x00007fc7fd43abd1 in QDBusConnectionPrivate::sendWithReply(QDBusMessage 
> const&, int, int) (this=0x7fc7e0003480, message=..., sendMode=1, timeout=-1)
>     at qdbusintegrator.cpp:1901
> #5  0x00007fc7fd4290eb in QDBusConnection::call(QDBusMessage const&, 
> QDBus::CallMode, int) const (this=this@entry=0x7fc7e0007ee0, message=..., 
> mode=mode@entry=QDBus::Block, timeout=<optimized out>) at 
> qdbusconnection.cpp:641
> #6  0x00007fc7fd445182 in 
> QDBusAbstractInterface::callWithArgumentList(QDBus::CallMode, QString const&, 
> QList<QVariant> const&) (this=<optimized out>, mode=QDBus::Block, 
> mode@entry=QDBus::AutoDetect, method=..., args=...) at 
> qdbusabstractinterface.cpp:488
> #7  0x00007fc7fd445c7d in 
> QDBusAbstractInterface::internalConstCall(QDBus::CallMode, QString const&, 
> QList<QVariant> const&) const (this=<optimized out>, 
> mode=mode@entry=QDBus::AutoDetect, method=..., args=...) at 
> qdbusabstractinterface.cpp:843
> #8  0x00007fc7fd42db26 in 
> QDBusConnectionInterface::isServiceRegistered(QString const&) const 
> (this=<optimized out>, serviceName=...)
>     at qdbusconnectioninterface.cpp:201
> #9  0x00007fc7f07c3cf5 in KDEInitInterface::ensureKdeinitRunning() () at 
> /home/dvratil/devel/KDE/frameworks/kdbusaddons/src/kdeinitinterface.cpp:35
> #10 0x00007fc8007cb3ac in klauncher() () at 
> /home/dvratil/devel/KDE/frameworks/kio/src/core/slave.cpp:66
> #11 0x00007fc8007ccb32 in KIO::Slave::createSlave(QString const&, QUrl 
> const&, int&, QString&) (protocol=..., url=..., error=@0x7ffdfb47692c: 0, 
> error_text=...)
>     at /home/dvratil/devel/KDE/frameworks/kio/src/core/slave.cpp:505
> #12 0x00007fc8007ef76f in KIO::ProtoQueue::createSlave(QString const&, 
> KIO::SimpleJob*, QUrl const&) (this=0x11ef6f0, protocol=..., job=0x1c57700, 
> url=...)
>     at /home/dvratil/devel/KDE/frameworks/kio/src/core/scheduler.cpp:529
> #13 0x00007fc8007efcd7 in KIO::ProtoQueue::startAJob() (this=0x11ef6f0) at 
> /home/dvratil/devel/KDE/frameworks/kio/src/core/scheduler.cpp:616
> #14 0x00007fc8007f31d9 in KIO::ProtoQueue::qt_static_metacall(QObject*, 
> QMetaObject::Call, int, void**) (_o=0x11ef6f0, 
> _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7ffdfb476b00) at 
> /home/dvratil/devel/KDE/build/frameworks/kio/src/core/moc_scheduler_p.cpp:250
> #15 0x00007fc7fbff9c70 in QMetaObject::activate(QObject*, int, int, void**) 
> (sender=sender@entry=0x11ef748, signalOffset=<optimized out>, 
> local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at 
> kernel/qobject.cpp:3730
> #16 0x00007fc7fbffa547 in QMetaObject::activate(QObject*, QMetaObject const*, 
> int, void**) (sender=sender@entry=0x11ef748, m=m@entry=0x7fc7fc412e40 
> <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, 
> argv=argv@entry=0x0) at kernel/qobject.cpp:3595
> #17 0x00007fc7fc075b80 in QTimer::timeout(QTimer::QPrivateSignal) 
> (this=this@entry=0x11ef748) at .moc/moc_qtimer.cpp:197
> #18 0x00007fc7fc006548 in QTimer::timerEvent(QTimerEvent*) (this=0x11ef748, 
> e=<optimized out>) at kernel/qtimer.cpp:247
> #19 0x00007fc7fbffaa63 in QObject::event(QEvent*) (this=0x11ef748, 
> e=<optimized out>) at kernel/qobject.cpp:1278
> #20 0x00007fc7fcceff5c in QApplicationPrivate::notify_helper(QObject*, 
> QEvent*) (this=<optimized out>, receiver=0x11ef748, e=0x7ffdfb476e20)
>     at kernel/qapplication.cpp:3717
> #21 0x00007fc7fccf5176 in QApplication::notify(QObject*, QEvent*) 
> (this=0xc91330, receiver=0x11ef748, e=0x7ffdfb476e20) at 
> kernel/qapplication.cpp:3498
> #22 0x00007fc7fbfcd518 in QCoreApplication::notifyInternal2(QObject*, 
> QEvent*) (receiver=0x11ef748, event=event@entry=0x7ffdfb476e20)
>     at kernel/qcoreapplication.cpp:1002
> #23 0x00007fc7fc02168e in QTimerInfoList::activateTimers() 
> (event=0x7ffdfb476e20, receiver=<optimized out>) at 
> ../../src/corelib/kernel/qcoreapplication.h:227
> #24 0x00007fc7fc02168e in QTimerInfoList::activateTimers() (this=0xce5360) at 
> kernel/qtimerinfo_unix.cpp:637
> #25 0x00007fc7fc021bc1 in timerSourceDispatch(GSource*, GSourceFunc, 
> gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:176
> #26 0x00007fc7f732ae3a in g_main_context_dispatch () at 
> /lib64/libglib-2.0.so.0
> #27 0x00007fc7f732b1d0 in g_main_context_iterate.isra () at 
> /lib64/libglib-2.0.so.0
> #28 0x00007fc7f732b27c in g_main_context_iteration () at 
> /lib64/libglib-2.0.so.0
> #29 0x00007fc7fc02279f in 
> QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) 
> (this=0xcf54b0, flags=...)
>     at kernel/qeventdispatcher_glib.cpp:417
> #30 0x00007fc7fbfcb0aa in 
> QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) 
> (this=this@entry=0x7ffdfb477070, flags=..., flags@entry=...)
>     at kernel/qeventloop.cpp:204
> #31 0x00007fc7fbfd395c in QCoreApplication::exec() () at 
> kernel/qcoreapplication.cpp:1272
> #32 0x00007fc7fc50e37c in QGuiApplication::exec() () at 
> kernel/qguiapplication.cpp:1571
> #33 0x00007fc7fcced125 in QApplication::exec() () at 
> kernel/qapplication.cpp:2976
> #34 0x0000000000418c63 in main(int, char**) (argc=3, argv=0x7ffdfb4772e8) at 
> /home/dvratil/devel/KDE/kde/kdenetwork/ktp-text-ui/app/main.cpp:71
> ```
> 
> 
> Diffs
> -----
> 
>   lib/chat-widget.cpp e26b57c 
> 
> Diff: https://git.reviewboard.kde.org/r/126252/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Daniel Vrátil
> 
>

_______________________________________________
KDE-Telepathy mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kde-telepathy

Reply via email to