> On April 25, 2015, 10:27 a.m., David Edmundson wrote:
> > Ship it * 1000
>
> David Edmundson wrote:
> Wait. How can this make any difference?
>
> DBus slots all happen in the main thread's event loop, which means we
> must have finished all this function before that.
>
> The only way this could change the behaviour is if something in new
> DesktopView() is calling creating a new event loop or calling
> qApp->processEvents()
>
> do you still have the entire trace?
>
> David Edmundson wrote:
> Well, I was right
>
> ActivitiesSync::currentActivity
>
> while (activities->serviceStatus() ==
> KActivities::Consumer::Unknown) {
> QCoreApplication::instance()->processEvents();
> }
>
>
> Your QML code is creating an activities model which calls this rather
> questionable segment of code.
> It's possible Kicker is too.
>
> You can push your change if you want a quick fix, it won't do any harm,
> but the real fix will be replacing this method.
>
> Blocking DBus calls should be made with the normal sensible blocking DBus
> API (or not done at all) not doing this processing all sorts of things out of
> whack.
full backtrace for anyone else: http://ix.io/dKR
- David
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/123494/#review79491
-----------------------------------------------------------
On April 25, 2015, 3:56 a.m., Bhushan Shah wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/123494/
> -----------------------------------------------------------
>
> (Updated April 25, 2015, 3:56 a.m.)
>
>
> Review request for Plasma and Marco Martin.
>
>
> Repository: plasma-workspace
>
>
> Description
> -------
>
> This avoids the crash situation where something have created the activity
> consumer earlier and currentActivityChanged signal is emitted before view is
> created.
>
> ```
> #0 PlasmaQuick::View::setContainment (this=0x0, cont=0x16a9fc0) at
> /home/bshah/aur/plasma-framework-git/src/plasma-framework/src/plasmaquick/view.cpp:243
> #1 0x0000000000462097 in StandaloneAppCorona::currentActivityChanged
> (this=0x7772a0, newActivity=...)
> at
> /home/bshah/aur/plasma-workspace-git/src/plasma-workspace/shell/standaloneappcorona.cpp:192
> #2 0x00007ffff32383c9 in QMetaObject::activate(QObject*, int, int, void**)
> () from /usr/lib/libQt5Core.so.5
> #3 0x00007ffff71f9763 in KActivities::Consumer::currentActivityChanged
> (this=0x741aa0, _t1=...) at
> /home/bshah/aur/kactivities-git/src/build/src/lib/core/moc_consumer.cpp:216
> #4 0x00007ffff71f94dd in KActivities::Consumer::qt_static_metacall
> (_o=0x741aa0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffffffa570)
> at
> /home/bshah/aur/kactivities-git/src/build/src/lib/core/moc_consumer.cpp:103
> #5 0x00007ffff32383c9 in QMetaObject::activate(QObject*, int, int, void**)
> () from /usr/lib/libQt5Core.so.5
> #6 0x00007ffff71f91d6 in
> KActivities::ActivitiesCache::currentActivityChanged (this=0x77c900, _t1=...)
> at
> /home/bshah/aur/kactivities-git/src/build/src/lib/core/moc_activitiescache_p.cpp:353
> #7 0x00007ffff71ee4f7 in KActivities::ActivitiesCache::setCurrentActivity
> (this=0x77c900, activity=...)
> at
> /home/bshah/aur/kactivities-git/src/kactivities/src/lib/core/activitiescache_p.cpp:297
> ```
>
> I hit this crash when creating recent media backend for pmc. First
> backendsmodel is initalized which in turn loads the recentmedia backend and
> hence creates the activity consumer first. Afterwards when signal is
> connected it calls currentActivityChanged slot and fails to set containment
> on null view.
>
>
> Diffs
> -----
>
> shell/standaloneappcorona.cpp efa5c91
>
> Diff: https://git.reviewboard.kde.org/r/123494/diff/
>
>
> Testing
> -------
>
> works fine
>
>
> Thanks,
>
> Bhushan Shah
>
>
_______________________________________________
Plasma-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/plasma-devel