Changing monitor configurations after changing lowgfx mode could lead to a HudControl crash

Bug #1748330 reported by Marco Trevisan (Treviño) on 2018-02-09
This bug affects 2 people
Affects Status Importance Assigned to Milestone
unity (Ubuntu)
Marco Trevisan (Treviño)

Bug Description


When changing monitor settings unity might crash with this backtrace:

#0 0x00007f90dae11428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1 0x00007f90dae1302a in __GI_abort () at abort.c:89
#2 0x00007f90db44b84d in __gnu_cxx::__verbose_terminate_handler() () at ../../../../src/libstdc++-v3/libsupc++/
#3 0x00007f90db4496b6 in __cxxabiv1::__terminate(void (*)()) (handler=<optimized out>)
    at ../../../../src/libstdc++-v3/libsupc++/
#4 0x00007f90db449701 in std::terminate() () at ../../../../src/libstdc++-v3/libsupc++/
#5 0x00007f90db449919 in __cxxabiv1::__cxa_throw(void*, std::type_info*, void (*)(void*)) (obj=0x246fb00, tinfo=0x7f90db731a20 <typeinfo for std::bad_function_call>, dest=0x7f90db472920 <std::bad_function_call::~bad_function_call()>)
    at ../../../../src/libstdc++-v3/libsupc++/
#6 0x00007f90db4728b2 in std::__throw_bad_function_call() () at ../../../../../src/libstdc++-v3/src/c++11/
#7 0x00007f90b9a9d2cc in unity::hud::Controller::SetupWindow() (this=0x17cf688) at /usr/include/c++/5/functional:2266
#8 0x00007f90b9a9d2cc in unity::hud::Controller::SetupWindow() (this=this@entry=0x17cf420)
    at /build/unity-UBalge/unity-7.4.5+16.04.20171201.3/hud/HudController.cpp:125
#9 0x00007f90b9a9effc in unity::hud::Controller::EnsureHud() (this=this@entry=0x17cf420)
    at /build/unity-UBalge/unity-7.4.5+16.04.20171201.3/hud/HudController.cpp:200
#10 0x00007f90b9aa00e4 in unity::hud::Controller::Relayout(bool) (this=0x17cf420, check_monitor=<optimized out>)
    at /build/unity-UBalge/unity-7.4.5+16.04.20171201.3/hud/HudController.cpp:271
#11 0x00007f90b9c4d350 in unity::UScreen::Refresh() (_A_a2=..., _A_a1=@0xd08c58: 0, impl=0xd08d60)
    at /usr/include/sigc++-2.0/sigc++/signal.h:1250
#12 0x00007f90b9c4d350 in unity::UScreen::Refresh() (this=0xd08c08, _A_a2=..., _A_a1=@0xd08c58: 0)
    at /usr/include/sigc++-2.0/sigc++/signal.h:2949
#13 0x00007f90b9c4d350 in unity::UScreen::Refresh() (this=0xd08c00)
    at /build/unity-UBalge/unity-7.4.5+16.04.20171201.3/unity-shared/UScreen.cpp:191
#14 0x00007f90b9c4df9c in std::_Function_handler<bool(), unity::UScreen::Changed(GdkScreen*)::<lambda()> >::_M_invoke(const std::_Any_data &) (__closure=0x3e902a8) at /build/unity-UBalge/unity-7.4.5+16.04.20171201.3/unity-shared/UScreen.cpp:149
#15 0x00007f90b9c4df9c in std::_Function_handler<bool(), unity::UScreen::Changed(GdkScreen*)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/5/functional:1857
#16 0x00007f90b62878ca in unity::glib::Source::SourceCallback(void*) () at /usr/lib/x86_64-linux-gnu/
#17 0x00007f90d970604a in g_main_context_dispatch (context=0x6cb380) at /build/glib2.0-prJhLS/glib2.0-2.48.2/./glib/gmain.c:3154
#18 0x00007f90d970604a in g_main_context_dispatch (context=context@entry=0x6cb380)
    at /build/glib2.0-prJhLS/glib2.0-2.48.2/./glib/gmain.c:3769
#19 0x00007f90d97063f0 in g_main_context_iterate (context=0x6cb380, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/glib2.0-prJhLS/glib2.0-2.48.2/./glib/gmain.c:3840
#20 0x00007f90d9706712 in g_main_loop_run (loop=0x6cb010) at /build/glib2.0-prJhLS/glib2.0-2.48.2/./glib/gmain.c:4034
#21 0x00007f90db79c31f in compiz::private_screen::EventManager::startEventLoop(_XDisplay*) ()
    at /usr/lib/x86_64-linux-gnu/
#22 0x00000000004017c1 in main ()

[ Test case ]

 - Change gsetting lowgfx mode
   * gsettings set com.canonical.Unity lowgfx false
   * gsettings set com.canonical.Unity lowgfx true
 - In unity-control-center display seettings change display or scaling values
 - Open HUD
 - Unity should not crash

[ Regression potential ]

UI doesn't adapt properly to monitor changes.

Related branches

Monika ( on 2018-02-21
Changed in unity (Ubuntu):
status: In Progress → Fix Released
description: updated

Hello Marco, or anyone else affected,

Accepted unity into xenial-proposed. The package will build now and be available at in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-xenial to verification-done-xenial. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-xenial. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at . Thank you in advance!

Changed in unity (Ubuntu Xenial):
status: New → Fix Committed
tags: added: verification-needed verification-needed-xenial
summary: Changing monitor configurations after changing lowgfx mode could lead to
- a crash
+ a HudControl crash


apt-cache policy unity
  Installed: 7.4.5+16.04.20180221-0ubuntu1
  Candidate: 7.4.5+16.04.20180221-0ubuntu1

Can't reproduce this crash again.

tags: added: verification-done verification-done-xenial
removed: verification-needed verification-needed-xenial

The verification of the Stable Release Update for unity has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unity - 7.4.5+16.04.20180221-0ubuntu1

unity (7.4.5+16.04.20180221-0ubuntu1) xenial; urgency=medium

  * Unity use track_obj to safely connect to UScreen and Settings
    signals (LP: #1748330) (LP: #1748330)
  * CairoBaseWindow: don't try to compute the blur of an invalid texture
    (LP: #1290056)
  * Unity: use new definition of infinite CompRegion's

 -- Marco Trevisan (Treviño) <> Wed, 21 Feb 2018 19:34:14 +0000

Changed in unity (Ubuntu Xenial):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers