----------------------------------------------------------- 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
