Merge lp:~alan-griffiths/compiz-core/Workaround-unityshell-SIGSEGV into lp:compiz-core/0.9.8

Proposed by Alan Griffiths
Status: Rejected
Rejected by: Alan Griffiths
Proposed branch: lp:~alan-griffiths/compiz-core/Workaround-unityshell-SIGSEGV
Merge into: lp:compiz-core/0.9.8
Diff against target: 22 lines (+11/-1)
1 file modified
src/screen.cpp (+11/-1)
To merge this branch: bzr merge lp:~alan-griffiths/compiz-core/Workaround-unityshell-SIGSEGV
Reviewer Review Type Date Requested Status
Sam Spilsbury Disapprove
Daniel van Vugt Disapprove
Review via email: mp+103081@code.launchpad.net

Description of the change

Workaround for some SIGSEGV crashes when unityshell is finalized & initialized.

It doesn't fix everything and doesn't fix the underlying problem, but does reduce frequency of crashes.

To post a comment you must log in.
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

It isn't clear why this makes a difference.

The unityshell library isn't actually unloaded by it (and adding the missing dlclose to {unity}/plugins/unityshell/src/unityshell.cpp doesn't help).

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I would prefer that we keep crashing so that Unity gets fixed, rather than hiding the crashes indefinitely. It's not impossible to fix them; I remember in 11.04 (and 11.10?) we managed to fix most of the Unity crashes that were triggered from plugin reloads. So fixing the new crashes in Unity 5 shouldn't be that hard...

review: Disapprove
Revision history for this message
Sam Spilsbury (smspillaz) wrote :

I would however like to see a testing framework where we can load and unload unityshell in a sandbox (will require lots of work getting mock compiz objects and abstracting away the necessity for SubstructureRedirectMask).

review: Disapprove
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

A shortcut to a testing framework might be to run under xvfb and add a command line option to specify a plugin to be run through fini/init cycles?

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I was thinking the same. However I read recently that xvfb is being retired...

Revision history for this message
Marco Trevisan (TreviƱo) (3v1n0) wrote :

> I would prefer that we keep crashing so that Unity gets fixed, rather than hiding the crashes indefinitely.
> It's not impossible to fix them;

Thanks to the Brandon help, and after fixing libbamf we actually have unity not crashing. I can safely enable and disable it from ccsm.
So, I think that the main issues have been fixed.

Unmerged revisions

3110. By Alan Griffiths

Workaround for some SIGSEGV crashes

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/screen.cpp'
2--- src/screen.cpp 2012-04-20 09:58:29 +0000
3+++ src/screen.cpp 2012-04-23 11:44:18 +0000
4@@ -982,7 +982,17 @@
5 {
6 for (pluginIndex = 0; pluginIndex < nPop; pluginIndex++)
7 {
8- alreadyLoaded.push_back(CompPlugin::pop());
9+ CompPlugin* current = CompPlugin::pop();
10+
11+ if ("unityshell" == current->vTable->name())
12+ {
13+ CompPlugin::unload(current);
14+ }
15+ else
16+ {
17+ alreadyLoaded.push_back(current);
18+ }
19+
20 plugin.list().pop_back();
21 }
22 }

Subscribers

People subscribed via source and target branches