Unity8 welcome wizard crashes after changing language
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
qmenumodel (Ubuntu) |
Fix Released
|
Undecided
|
Michael Terry |
Bug Description
To reproduce:
- start the welcome wizard on an Ubuntu Touch phone
- click 'Continue'
- click 'Back'
- change language
- click 'Continue'
- click 'Back'
Repeat those last three steps a few times and you will eventually create a crash (usually within 5 tries).
It is because of a libqmenumodel bug triggered when we restart the indicators to force them to notice the new language.
Below is a stacktrace for the g_variant_unref failure (trying to unref a GVariant without any refs, with fatal-criticals turned on). The problem is that GtkMenuTrackerItem tries to unref its stored state GVariant on finalize, when it already unref'd it earlier. Branch attached to this bug.
#0 0xffffffff in () at /lib/arm-
#1 0xffffffff in raise () at /lib/arm-
#2 0xffffffff in g_logv (breakpoint=1)
at /build/
#3 0xffffffff in g_logv (log_domain=
at /build/
#4 0xffffffff in g_log (log_domain=
at /build/
#5 0xffffffff in g_return_
at /build/
#6 0xffffffff in gtk_menu_
at /build/
#7 0xffffffff in g_object_unref (_object=0x10abae0)
at /build/
#8 0xffffffff in real_node_free (node=0xade173c0, seq=0x10df290)
at /build/
#9 0xffffffff in UnityMenuModel:
---Type <return> to continue, or q <return> to quit---
0xfa4970, e=<optimized out>)
at /build/
#10 0xffffffff in QCoreApplicatio
at /usr/lib/
#11 0xffffffff in QCoreApplicatio
at /usr/lib/
#12 0xffffffff in UnityMenuModelP
at /usr/include/
#13 0xffffffff in UnityMenuModelP
at /build/
#14 0xffffffff in gtk_menu_
at /build/
#15 0xffffffff in gtk_menu_
at /build/
#16 0xffffffff in ffi_call_VFP () at /usr/lib/
---Type <return> to continue, or q <return> to quit---
#17 0xffffffff in ffi_call () at /usr/lib/
#22 0xffffffff in <emit signal ??? on instance 0x1185660 [GDBusMenuModel]> (instance=
at /build/
#18 0xffffffff in g_cclosure_
at /build/
#19 0xffffffff in g_closure_invoke (closure=0xed0ac0, return_value=0x0, n_param_values=4, param_values=
at /build/
#20 0xffffffff in signal_
instance@
at /build/
#21 0xffffffff in g_signal_
var_
at /build/
#23 0xffffffff in g_menu_
at /build/
---Type <return> to continue, or q <return> to quit---
#24 0xffffffff in g_dbus_
at /build/
#25 0xffffffff in g_dbus_
at /build/
#26 0xffffffff in g_dbus_
at /build/
#27 0xffffffff in emit_signal_
at /build/
#28 0xffffffff in g_main_
at /build/
#29 0xffffffff in g_main_
at /build/
#30 0xffffffff in g_main_
at /build/
#31 0xffffffff in g_main_
at /build/
#32 0xffffffff in QEventDispatche
---Type <return> to continue, or q <return> to quit---
#33 0xffffffff in QEventLoop:
at /usr/lib/
#34 0xffffffff in QCoreApplicatio
at /usr/lib/
#35 0x000156a0 in main(int, char const**) (argc=1, argv=0xbedff4a4)
at /home/phablet/
Related branches
- Lars Karlitski (community): Approve
- Albert Astals Cid (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 10 lines (+1/-0)1 file modifiedlibqmenumodel/src/gtk/gtkmenutrackeritem.c (+1/-0)
Changed in qmenumodel (Ubuntu): | |
assignee: | nobody → Michael Terry (mterry) |
status: | New → In Progress |
The fix in the branch comes with no test. Should we add a regression test in unity to go forth and back on the wizard pages?