GNOME Bugzilla – Bug 739450
monitor-config: Prevent a crash applying config for a closed lid
Last modified: 2014-10-31 16:51:34 UTC
The backtrace is: Program received signal SIGABRT, Aborted. 0x00007fcaac39cbf7 in raise () from /lib64/libc.so.6 (gdb) bt "mutter", file=0x7fcab63bb6f8 "backends/x11/meta-monitor-manager-xrandr.c", line=791, func=0x7fcab63bb820 <__FUNCTION__.79788> "meta_monitor_manager_xrandr_apply_configuration", message=0x42c3450 "assertion failed: (width > 0 && height > 0)") at gtestutils.c:2291 (domain=0x7fcab63bb723 "mutter", file=0x7fcab63bb6f8 "backends/x11/meta-monitor-manager-xrandr.c", line=791, func=0x7fcab63bb820 <__FUNCTION__.79788> "meta_monitor_manager_xrandr_apply_configuration", expr=0x7fcab63bb74c "width > 0 && height > 0") at gtestutils.c:2306 meta_monitor_manager_xrandr_apply_configuration (manager=0x183b2a0, crtcs=0x4328200, n_crtcs=0, outputs=0x41d5f20, n_outputs=2) at backends/x11/meta-monitor-manager-xrandr.c:791 (manager=0x183b2a0, crtcs=0x4328200, n_crtcs=0, outputs=0x41d5f20, n_outputs=2) at backends/meta-monitor-manager.c:577 config=0x300f9a0, manager=0x183b2a0) at backends/meta-monitor-config.c:874 manager=0x183b2a0) at backends/meta-monitor-config.c:1360 (client=0x7fca90008710, pspec=0x2cde1a0, user_data=0x2ca6520) at backends/meta-monitor-config.c:1381 (closure=0x181cae0, return_value=0x0, n_param_values=2, param_values=0x7fff423a5300, invocation_hint=0x7fff423a5240, marshal_data=0x0) at gmarshal.c:1042 return_value=0x0, n_param_values=2, param_values=0x7fff423a5300, invocation_hint=0x7fff423a5240) at gclosure.c:768 detail=650, instance=0x7fca90008710, emission_return=0x0, instance_and_params=0x7fff423a5300) at gsignal.c:3530 (instance=0x7fca90008710, signal_id=1, detail=650, var_args=0x7fff423a55c8) at gsignal.c:3286 signal_id=1, detail=650) at gsignal.c:3342 (object=0x7fca90008710, n_pspecs=1, pspecs=0x7fff423a5700) at gobject.c:1056 (object=0x7fca90008710, pspec=0x2cde1a0) at gobject.c:1149 property_name=0x18157e3 "lid-is-closed") at gobject.c:1197 pspec=0x2cde460, client=0x7fca90008710) at up-client.c:295 (closure=0x2ce5aa0, return_value=0x0, n_param_values=2, param_values=0x7fff423a59c0, invocation_hint=0x7fff423a5900, marshal_data=0x0) at gmarshal.c:1042 return_value=0x0, n_param_values=2, param_values=0x7fff423a59c0, invocation_hint=0x7fff423a5900) at gclosure.c:768 detail=650, instance=0x1a653f0, emission_return=0x0, instance_and_params=0x7fff423a59c0) at gsignal.c:3530 signal_id=1, detail=650, var_args=0x7fff423a5c88) at gsignal.c:3286 signal_id=1, detail=650) at gsignal.c:3342 (object=0x1a653f0, n_pspecs=1, pspecs=0x7fff423a5dc0) at gobject.c:1056 (object=0x1a653f0, pspec=0x2cd6b30) at gobject.c:1149 property_name=0x7fcab60b8323 "lid-is-closed") at gobject.c:1197 (_proxy=0x1a653f0, changed_properties=0x7fca900b36d0, invalidated_properties=0x42b1da0) at up-client-glue.c:1392 (closure=0x2cdb110, return_gvalue=0x0, n_param_values=3, param_values=0x7fff423a6320, invocation_hint=0x7fff423a6260, marshal_data=0x7fcab60aac09 <up_client_glue_proxy_g_properties_changed>) at gclosure.c:1448 (closure=0x2cdb110, return_value=0x0, n_param_values=3, param_values=0x7fff423a6320, invocation_hint=0x7fff423a6260, marshal_data=0x88) at gclosure.c:961 return_value=0x0, n_param_values=3, param_values=0x7fff423a6320, invocation_hint=0x7fff423a6260) at gclosure.c:768 detail=0, instance=0x1a653f0, emission_return=0x0, instance_and_params=0x7fff423a6320) at gsignal.c:3568 signal_id=58, detail=0, var_args=0x7fff423a6608) at gsignal.c:3286 signal_id=58, detail=0) at gsignal.c:3342 sender_name=0x7fca90123570 ":1.19", object_path=0x7fca90126820 "/org/freedesktop/UPower", interface_name=0x7fca901489c0 "org.freedesktop.DBus.Properties", signal_name=0x7fca90126a40 "PropertiesChanged", parameters=0x7fca900b3460, user_data=0x1a62960) at gdbusproxy.c:1139 (data=0x7fca901296f0) at gdbusconnection.c:3753 callback=0x7fcab05de530 <emit_signal_instance_in_idle_cb>, user_data=0x7fca901296f0) at gmain.c:5378 gmain.c:3122 at gmain.c:3721 block=1, dispatch=1, self=0x2cb5160) at gmain.c:3792 gmain.c:3986 main.c:463
Created attachment 289744 [details] [review] monitor-config: Prevent a crash applying config for a closed lid When a laptop's lid is closed we try to build and apply a temporary configuration that disables the laptop's display if we have other outputs. This isn't enough though, we must also check if at least one of these other outputs is enabled otherwise we'll try to resize the screen to 0x0 which (rightfully) hits an assertion.
Review of attachment 289744 [details] [review]: Yep.
a19eda5..c98686d gnome-3-14 -> gnome-3-14 13b6bd2..3b1271d master -> master Attachment 289744 [details] pushed as 3b1271d - monitor-config: Prevent a crash applying config for a closed lid