After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 739450 - monitor-config: Prevent a crash applying config for a closed lid
monitor-config: Prevent a crash applying config for a closed lid
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: general
unspecified
Other All
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2014-10-31 14:15 UTC by Rui Matos
Modified: 2014-10-31 16:51 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
monitor-config: Prevent a crash applying config for a closed lid (2.23 KB, patch)
2014-10-31 14:15 UTC, Rui Matos
committed Details | Review

Description Rui Matos 2014-10-31 14:15:47 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
Comment 1 Rui Matos 2014-10-31 14:15:50 UTC
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.
Comment 2 Jasper St. Pierre (not reading bugmail) 2014-10-31 16:12:17 UTC
Review of attachment 289744 [details] [review]:

Yep.
Comment 3 Rui Matos 2014-10-31 16:51:29 UTC
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