Compiz segfaults in ccsGSettingsWrapperFactoryNewGSettingsWrapperWithPath when attempting to load Unity

Bug #1067585 reported by Christopher Lee
24
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Compiz
Fix Released
Critical
Unassigned

Bug Description

Attempting to run Unity from the staging ppa results in a segfault.
package versions:
  - Compiz: 1:0.9.9.0bzr3430pkg3318quantal0
  - Unity: 6.8.0bzr2845pkg797quantal0

I was able to grab the following stacktrace:

Reading symbols from /usr/bin/compiz...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/compiz --replace
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
/usr/bin/compiz (core) - Info: Loading plugin: core
/usr/bin/compiz (core) - Info: Starting plugin: core
[New Thread 0x7ffff3b4c700 (LWP 17746)]
/usr/bin/compiz (core) - Info: Loading plugin: ccp
/usr/bin/compiz (core) - Info: Starting plugin: ccp
[New Thread 0x7ffff0a48700 (LWP 17747)]
compizconfig - Info: Backend : gsettings
compizconfig - Info: Integration : true
compizconfig - Info: Profile : unity
[New Thread 0x7fffebfff700 (LWP 17749)]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff1c27b08 in ccsGSettingsWrapperFactoryNewGSettingsWrapperWithPath () from /usr/lib/libcompizconfig_gsettings_backend.so
(gdb) bt
#0 0x00007ffff1c27b08 in ccsGSettingsWrapperFactoryNewGSettingsWrapperWithPath () from /usr/lib/libcompizconfig_gsettings_backend.so
#1 0x00007ffff1c2500f in ?? () from /usr/lib/libcompizconfig_gsettings_backend.so
#2 0x00007ffff1c273f5 in getSettingsObjectForCCSSetting () from /usr/lib/libcompizconfig_gsettings_backend.so
#3 0x00007ffff1e43ae3 in getVariantForCCSSetting () from /usr/lib/compizconfig/backends/libgsettings.so
#4 0x00007ffff1e43b9b in readOption () from /usr/lib/compizconfig/backends/libgsettings.so
#5 0x00007ffff1e43f83 in readSetting () from /usr/lib/compizconfig/backends/libgsettings.so
#6 0x00007ffff2b0123b in ccsReadPluginSettingsDefault () from /usr/lib/libcompizconfig.so.0
#7 0x00007ffff2af384e in ccsLoadPluginSettings () from /usr/lib/libcompizconfig.so.0
#8 0x00007ffff2b00042 in ccsContextNew () from /usr/lib/libcompizconfig.so.0
#9 0x00007ffff2d2ecaf in CcpScreen::CcpScreen(CompScreen*) () from /usr/lib/compiz/libccp.so
#10 0x00007ffff2d30f59 in CompPlugin::VTableForScreen<CcpScreen>::initScreen(CompScreen*) () from /usr/lib/compiz/libccp.so
#11 0x00007ffff7b85fc6 in CompManager::initPlugin(CompPlugin*) () from /usr/lib/libcompiz_core.so.ABI-20121002
#12 0x00007ffff7b86891 in CompPlugin::push(CompPlugin*) () from /usr/lib/libcompiz_core.so.ABI-20121002
#13 0x00007ffff7b594e8 in compiz::private_screen::PluginManager::updatePlugins(CompScreen*, std::vector<CompOption::Value, std::allocator<CompOption::Value> > const&) ()
   from /usr/lib/libcompiz_core.so.ABI-20121002
#14 0x00007ffff7b5a151 in CompScreenImpl::init(char const*) () from /usr/lib/libcompiz_core.so.ABI-20121002
#15 0x0000000000402fdc in CompManager::init() ()
#16 0x00000000004024af in main ()
(gdb)

Revision history for this message
Daniel van Vugt (vanvugt) wrote :
Changed in compiz:
importance: Undecided → Critical
milestone: none → 0.9.9.0
Revision history for this message
Christopher Lee (veebers) wrote :
Download full text (3.8 KiB)

Updated stracktrace with *-dbgsym installed:

$ unity --advanced-debug
WARNING: no DISPLAY variable set, setting it to :0
unity-panel-service: no process found
GNU gdb (GDB) 7.5-ubuntu
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/compiz...Reading symbols from /usr/lib/debug/.build-id/bb/635fbf605ce6d5fad1ad7caa65667d01725b1f.debug...done.
done.
(gdb) run
Starting program: /usr/bin/compiz --replace
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
/usr/bin/compiz (core) - Info: Loading plugin: core
/usr/bin/compiz (core) - Info: Starting plugin: core
[New Thread 0x7ffff3b4c700 (LWP 17925)]
/usr/bin/compiz (core) - Info: Loading plugin: ccp
/usr/bin/compiz (core) - Info: Starting plugin: ccp
[New Thread 0x7ffff0a48700 (LWP 17926)]
compizconfig - Info: Backend : gsettings
compizconfig - Info: Integration : true
compizconfig - Info: Profile : unity
[New Thread 0x7fffebfff700 (LWP 17928)]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff1c27b08 in ccsGSettingsWrapperFactoryNewGSettingsWrapperWithPath () from /usr/lib/libcompizconfig_gsettings_backend.so
(gdb) bt
#0 0x00007ffff1c27b08 in ccsGSettingsWrapperFactoryNewGSettingsWrapperWithPath () from /usr/lib/libcompizconfig_gsettings_backend.so
#1 0x00007ffff1c2500f in ?? () from /usr/lib/libcompizconfig_gsettings_backend.so
#2 0x00007ffff1c273f5 in getSettingsObjectForCCSSetting () from /usr/lib/libcompizconfig_gsettings_backend.so
#3 0x00007ffff1e43ae3 in getVariantForCCSSetting () from /usr/lib/compizconfig/backends/libgsettings.so
#4 0x00007ffff1e43b9b in readOption () from /usr/lib/compizconfig/backends/libgsettings.so
#5 0x00007ffff1e43f83 in readSetting () from /usr/lib/compizconfig/backends/libgsettings.so
#6 0x00007ffff2b0123b in ccsReadPluginSettingsDefault () from /usr/lib/libcompizconfig.so.0
#7 0x00007ffff2af384e in ccsLoadPluginSettings () from /usr/lib/libcompizconfig.so.0
#8 0x00007ffff2b00042 in ccsContextNew () from /usr/lib/libcompizconfig.so.0
#9 0x00007ffff2d2ecaf in CcpScreen::CcpScreen(CompScreen*) () from /usr/lib/compiz/libccp.so
#10 0x00007ffff2d30f59 in CompPlugin::VTableForScreen<CcpScreen>::initScreen(CompScreen*) () from /usr/lib/compiz/libccp.so
#11 0x00007ffff7b85fc6 in CompManager::initPlugin (p=p@entry=0x643520) at /build/buildd/compiz-0.9.9.0bzr3430pkg3318quantal0/src/plugin.cpp:233
#12 0x00007ffff7b86891 in CompPlugin::push (p=0x643520) at /build/buildd/compiz-0.9.9.0bzr3430pkg3318quantal0/src/plugin.cpp:449
#13 0x00007ffff7b594e8 in compiz::private_screen::PluginManager::updatePlugins (this=this@entry=0x60d6b0, screen=0x6...

Read more...

summary: - Compiz segfaults when attempting to load Unity
+ Compiz segfaults in
+ ccsGSettingsWrapperFactoryNewGSettingsWrapperWithPath when attempting to
+ load Unity
Revision history for this message
Eleni Maria Stea (hikiko) wrote :

confirmed: I get the same error when i run unity in gdb using catchpoints.

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

I can't reproduce this with the latest code. And valgrind reports nothing either.

It looks like maybe the fix for bug caused some ABI breakage in libcompizconfig, but I can't see any for sure.

Could you please try compiling the latest lp:unity, and/or get a crash with debug info? Line numbers alone won't help much because it looks like the offending function is only one line (with 2 pointer dereferences).

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

Also, what are ALL your compiz package versions?
    dpkg -l | grep compiz

Changed in compiz:
status: New → Incomplete
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Comment #4 should say:
    It looks like maybe the fix for bug 1064791 caused some ABI breakage

Revision history for this message
Eleni Maria Stea (hikiko) wrote :

ii compiz 1:0.9.9.0bzr3432pkg3318quantal0 all OpenGL window and compositing manager
ii compiz-core 1:0.9.9.0bzr3432pkg3318quantal0 amd64 OpenGL window and compositing manager
ii compiz-dev 1:0.9.9.0bzr3432pkg3318quantal0 amd64 OpenGL window and compositing manager - development files
ii compiz-gnome 1:0.9.9.0bzr3432pkg3318quantal0 amd64 OpenGL window and compositing manager - GNOME window decorator
ii compiz-plugins-default 1:0.9.9.0bzr3432pkg3318quantal0 amd64 OpenGL window and compositing manager - default plugins
ii libcompizconfig0 1:0.9.9.0bzr3432pkg3318quantal0 amd64 Settings library for plugins - OpenCompositing Project
ii libcompizconfig0-dev 1:0.9.9.0bzr3432pkg3318quantal0 amd64 Development file for plugin settings - OpenCompositing Project

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

Assigning to Sam to have a look. I can't see the problem, other than we're obviously dereferencing and invalid pointer. The offending change would be the fix for bug bug 1064791.

Changed in compiz:
assignee: nobody → Daniel van Vugt (vanvugt)
assignee: Daniel van Vugt (vanvugt) → Sam Spilsbury (smspillaz)
tags: added: blocking-autopilot
Changed in compiz:
milestone: 0.9.9.0 → 0.9.9.2
Changed in compiz:
milestone: 0.9.9.2 → 0.9.10.0
Changed in compiz:
milestone: 0.9.10.0 → 0.9.10.2
MC Return (mc-return)
Changed in compiz:
milestone: 0.9.10.2 → 0.9.11.0
Revision history for this message
Stephen M. Webb (bregma) wrote :

I'm going to assume this is not longer a problem and was caused by a transient ABI break.

Changed in compiz:
assignee: Sam Spilsbury (smspillaz) → nobody
milestone: 0.9.11.0 → none
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.