Review Request 128040: [shellcorona] Containment can be nullptr

David Edmundson david at davidedmundson.co.uk
Tue May 31 04:36:59 UTC 2016



> On May 30, 2016, 11:32 a.m., Aleix Pol Gonzalez wrote:
> > Could you look a bit into why is the containment null?
> 
> Anthony Fieroni wrote:
>     So i can speculate, because i have 2 Samsung TV, 1 smart, 1 LCD and i can't reproduce crash, KScreen is not finish recognazing, which i write above, corona.cpp:211 if (screen >= 0 && screen < numScreens()) is not satisfied for some reason and returning containment is nullptr. I can't figure out any other possible way.
> 
> Aleix Pol Gonzalez wrote:
>     But `createContainmentForActivity` should return a containment nevertheless, it's not related to KScreen after all.
> 
> Marco Martin wrote:
>     so may the issue go away with the port to qscreen?
> 
> Anthony Fieroni wrote:
>     createContainmentForActivity calls containmentForScreen() from corona which use numScreen() overridden in shellCorona and depend on KScreen configuration. So for me is KScreen related.

>    so may the issue go away with the port to qscreen?

It should do.

It's a continuation of https://bugs.kde.org/show_bug.cgi?id=351777 

there I list the events which cause the crash:

>Corona.cpp checks we are requesting a containment for a valid screen if (screen >= 0 && screen < numScreens()) {

>This fails as numScreens() is Qt API based, whereas the signal we're adding the output for is ShellCorona::addOutput

If Qt proceses the DBus event before we get the X event. You're out of sync.
(note they weren't in Plasma 5.0,it changed in ~5.2 when the XCB backend for kscreen was split into a separate process)

I fixed the case of them being out of sync at startup which was the main time we got the crash, but it still apparently happens on unplugging/plugging in a monitor.

As for this patch; sure you'll stop a crash, but you'll leave those setups that would have crashed with a blank screen on the monitor they've just plugged in.


- David


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


On May 30, 2016, 4:33 a.m., Anthony Fieroni wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/128040/
> -----------------------------------------------------------
> 
> (Updated May 30, 2016, 4:33 a.m.)
> 
> 
> Review request for Plasma, Aleix Pol Gonzalez and David Edmundson.
> 
> 
> Bugs: 361548
>     https://bugs.kde.org/show_bug.cgi?id=361548
> 
> 
> Repository: plasma-workspace
> 
> 
> Description
> -------
> 
> I can't reproduce this tons of bug reports and i event can't undertaind how containment can be nullptr, when i see corona.cpp http://api.kde.org/frameworks/plasma-framework/html/corona_8cpp_source.html#l00447
> 
> 
> Diffs
> -----
> 
>   shell/shellcorona.cpp 2a78ca9 
> 
> Diff: https://git.reviewboard.kde.org/r/128040/diff/
> 
> 
> Testing
> -------
> 
> To stop crash ?!
> 
> 
> Thanks,
> 
> Anthony Fieroni
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20160531/39a9454e/attachment-0001.html>


More information about the Plasma-devel mailing list