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 671484 - segfault in um_user_set_icon_file() (when uid < UID_MIN?)
segfault in um_user_set_icon_file() (when uid < UID_MIN?)
Status: RESOLVED FIXED
Product: gnome-control-center
Classification: Core
Component: User Accounts
3.3.x
Other Linux
: Normal critical
: ---
Assigned To: Control-Center Maintainers
Control-Center Maintainers
: 665066 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2012-03-06 17:58 UTC by Sebastien Bacher
Modified: 2012-04-10 15:23 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Proposed patch (1.83 KB, patch)
2012-04-10 13:22 UTC, Michael Terry
accepted-commit_now Details | Review

Description Sebastien Bacher 2012-03-06 17:58:13 UTC
The bug has been reported on https://launchpad.net/bugs/908140 on GNOME 3.2 but recent duplicates (i.e https://launchpad.net/bugs/944571) are on GNOME 3.3.90

3.3.90 stacktrace:

"#0  0x00007f3ef7dad304 in um_user_set_icon_file (user=0x0, icon_file=<optimized out>) at um-user.c:849
        result = <optimized out>
        error = 0x0
  • #1 g_closure_invoke
    at /build/buildd/glib2.0-2.31.18/./gobject/gclosure.c line 774
  • #2 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.31.18/./gobject/gsignal.c line 3302
  • #3 g_signal_emit_valist
    at /build/buildd/glib2.0-2.31.18/./gobject/gsignal.c line 3033
  • #4 g_signal_emit
    at /build/buildd/glib2.0-2.31.18/./gobject/gsignal.c line 3090
  • #5 gtk_widget_activate
    at /build/buildd/gtk+3.0-3.3.16/./gtk/gtkwidget.c line 6185
  • #6 gtk_menu_shell_activate_item
    at /build/buildd/gtk+3.0-3.3.16/./gtk/gtkmenushell.c line 1444
  • #7 gtk_menu_shell_button_release
    at /build/buildd/gtk+3.0-3.3.16/./gtk/gtkmenushell.c line 843
  • #8 _gtk_marshal_BOOLEAN__BOXED
    at /build/buildd/gtk+3.0-3.3.16/./gtk/gtkmarshalers.c line 85
  • #9 g_closure_invoke
    at /build/buildd/glib2.0-2.31.18/./gobject/gclosure.c line 774
  • #10 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.31.18/./gobject/gsignal.c line 3340
  • #11 g_signal_emit_valist
    at /build/buildd/glib2.0-2.31.18/./gobject/gsignal.c line 3043
  • #12 g_signal_emit
    at /build/buildd/glib2.0-2.31.18/./gobject/gsignal.c line 3090
  • #13 gtk_widget_event_internal
    at /build/buildd/gtk+3.0-3.3.16/./gtk/gtkwidget.c line 6154
  • #14 gtk_propagate_event
    at /build/buildd/gtk+3.0-3.3.16/./gtk/gtkmain.c line 2434
  • #15 gtk_main_do_event
    at /build/buildd/gtk+3.0-3.3.16/./gtk/gtkmain.c line 1691
  • #16 gdk_event_source_dispatch
    at /build/buildd/gtk+3.0-3.3.16/./gdk/x11/gdkeventsource.c line 360
  • #17 g_main_dispatch
    at /build/buildd/glib2.0-2.31.18/./glib/gmain.c line 2510
  • #18 g_main_context_dispatch
    at /build/buildd/glib2.0-2.31.18/./glib/gmain.c line 3047
  • #19 g_main_context_iterate
    at /build/buildd/glib2.0-2.31.18/./glib/gmain.c line 3118

Comment 1 Sebastien Bacher 2012-03-06 17:59:15 UTC
This fedora bug: https://bugzilla.redhat.com/show_bug.cgi?id=757424 has interesting hints

"this bug only happens if the user is a system user, i.e. has a user id < 1000.
I changed the border from 500 to 1000 during the update to Fedora 16 but did
not change the user id, hence I was logged in as a system user. For "normal"
users this bug does not happen."

it seems to happen when uid is < MIN_UID
Comment 2 Bastien Nocera 2012-03-07 11:39:30 UTC
There's 2 problems. The fact that the panel doesn't survive being given a NULL user, and the fact that accountsservice wrongly assumes that all UIDs under < UID_MIN (as defined in /etc/login.defs) are system ones, even if we're logged in with it.

Added patches here:
https://bugs.freedesktop.org/show_bug.cgi?id=44408

If somebody's interested in fixing the bug another way, feel free to reopen here.
Comment 3 Michael Terry 2012-04-09 19:24:48 UTC
*** Bug 665066 has been marked as a duplicate of this bug. ***
Comment 4 Michael Terry 2012-04-10 13:20:44 UTC
Hello!  I'm going to reopen this, as you suggested if someone was interested in providing the gnome-control-center side of the equation.

I'll provide a patch shortly.
Comment 5 Michael Terry 2012-04-10 13:22:38 UTC
Created attachment 211733 [details] [review]
Proposed patch

As mentioned, there were two bugs here.  Accountsservice was wrongly identifying system users, and that's now fixed in a separate bug.

But g-c-c was also not handling the case of a logged-in-system user well.  And that bug is still there and can be hit if a user does end up logging in as a system user.

Here's a patch to start the user panel widgets as insensitive until a user is selected.
Comment 6 Bastien Nocera 2012-04-10 14:59:17 UTC
Review of attachment 211733 [details] [review]:

Sounds good, to commit to master and gnome-3-4.
Comment 7 Michael Terry 2012-04-10 15:23:09 UTC
commit 04eca6d9515ea1eb6827f334d6c57c26b0e58718
Author: Michael Terry <michael.terry@canonical.com>
Date:   Tue Apr 10 09:19:03 2012 -0400

    user-accounts: Make controls insensitive when a user is not selected
    
    https://bugzilla.gnome.org/show_bug.cgi?id=671484l