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 686468 - segmentation fault trying to set dpms mode
segmentation fault trying to set dpms mode
Status: RESOLVED FIXED
Product: gnome-settings-daemon
Classification: Core
Component: general
3.4.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-settings-daemon-maint
gnome-settings-daemon-maint
Depends on:
Blocks:
 
 
Reported: 2012-10-19 14:45 UTC by Micael Dias
Modified: 2012-10-20 10:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
power: Fix possible crashers reusing set GError (2.49 KB, patch)
2012-10-19 15:03 UTC, Bastien Nocera
committed Details | Review

Description Micael Dias 2012-10-19 14:45:22 UTC
Some time after the blank screensaver kicks in, if I move the mouse (to exit screensaver), gnome-settings-daemon crashes and I get the old/default gtk theme.

I'm running Arch Linux, and this is the output I could get with gdb:



(gnome-settings-daemon:17920): power-plugin-WARNING **: Failed set DPMS mode: Could not change DPMS mode
[1350656941,000,xklavier.c:xkl_engine_start_listen/] 	The backend does not require manual layout management - but it is provided by the application
[Thread 0x7fffdf7fe700 (LWP 17928) exited]
[Thread 0x7fffdffff700 (LWP 17927) exited]
[Thread 0x7ffff0b75700 (LWP 17924) exited]
[Thread 0x7ffff1376700 (LWP 17923) exited]

(gnome-settings-daemon:17920): power-plugin-WARNING **: failed to turn the panel off: Could not change DPMS mode

(gnome-settings-daemon:17920): GLib-GIO-CRITICAL **: g_dbus_proxy_call_sync_internal: assertion `error == NULL || *error == NULL' failed

(gnome-settings-daemon:17920): power-plugin-WARNING **: failed to turn the kbd backlight off: (null)

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff68f94cf in g_slice_alloc () from /usr/lib/libglib-2.0.so.0
(gdb) bt
  • #0 g_slice_alloc
    from /usr/lib/libglib-2.0.so.0
  • #1 gdk_error_trap_push
    from /usr/lib/libgdk-3.so.0
  • #2 ??
    from /usr/lib/libgnome-desktop-3.so.2
  • #3 gnome_rr_screen_set_dpms_mode
    from /usr/lib/libgnome-desktop-3.so.2
  • #4 ??
    from /usr/lib/gnome-settings-daemon-3.0/libpower.so
  • #5 ??
    from /usr/lib/gnome-settings-daemon-3.0/libpower.so
  • #6 ??
    from /usr/lib/libgobject-2.0.so.0
  • #7 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #9 gpm_idletime_alarm_reset_all
    from /usr/lib/gnome-settings-daemon-3.0/libpower.so
  • #10 ??
    from /usr/lib/gnome-settings-daemon-3.0/libpower.so
  • #11 ??
    from /usr/lib/libgdk-3.so.0
  • #12 ??
    from /usr/lib/libgdk-3.so.0
  • #13 gdk_display_get_event
    from /usr/lib/libgdk-3.so.0
  • #14 ??
    from /usr/lib/libgdk-3.so.0
  • #15 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #16 ??
    from /usr/lib/libglib-2.0.so.0
  • #17 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #18 gtk_main
    from /usr/lib/libgtk-3.so.0
  • #19 main

Comment 1 Bastien Nocera 2012-10-19 15:03:46 UTC
Created attachment 226829 [details] [review]
power: Fix possible crashers reusing set GError

When setting the panel's backlight can't be turned off for example,
switching off the keyboard's backlight will fail as well, as the
error will be invalid for use.
Comment 2 Rui Matos 2012-10-19 16:41:33 UTC
Review of attachment 226829 [details] [review]:

It's good.
Comment 3 Micael Dias 2012-10-19 17:32:34 UTC
Patch seems to fix the issue, thanks.
Comment 4 Micael Dias 2012-10-20 01:25:15 UTC
I wonder if all the other g_error_free() calls wouldn't be better if replaced to also use g_clear_error() in order to avoid illegally reusing the error variable in future code adds...
Comment 5 Bastien Nocera 2012-10-20 10:18:02 UTC
Attachment 226829 [details] pushed as 0435e06 - power: Fix possible crashers reusing set GError