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 652073 - Unable to delete user
Unable to delete user
Status: RESOLVED FIXED
Product: gnome-control-center
Classification: Core
Component: User Accounts
3.0.x
Other Linux
: Normal normal
: ---
Assigned To: Control-Center Maintainers
Control-Center Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-06-07 17:38 UTC by Tiffany Antopolski
Modified: 2011-06-11 11:42 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Tiffany Antopolski 2011-06-07 17:38:05 UTC
steps followed:

1. Clicked my username on the top bar.
2. Selected System Settings.
3. Clicked User Accounts.
4. Clicked Unlock in the bottom-left corner and typed password. 
5. Selected the user to delete and clicked the - button.
6. Clicked on Delete Files.
7. gnome-control-center closed.

8. repeated steps 1 - 5.
9. clicked on Keep Files.
10.  Error box appeared:
   "Failed to delete user 
   Method "DeleteUser with signature "x" on interface "org.freedesktop.Accounts" doesn't exist."

running Fedora15 freshly installed and updated on June 7.  gnome-control-center version is 3.0.1.1
Comment 1 Ray Strode [halfline] 2011-06-07 17:55:53 UTC
what version of accountsservice do you have installed?
Comment 2 Tiffany Antopolski 2011-06-07 18:11:50 UTC
[tiffany@kilmer ~]$ rpm -qi accountsservice
Name        : accountsservice
Version     : 0.6.10
Release     : 2.fc15
Architecture: i686
Install Date: Fri 13 May 2011 03:43:28 PM EDT
Group       : System Environment/Daemons
Size        : 160797
License     : GPLv3+
Signature   : RSA/SHA256, Tue 10 May 2011 06:29:00 PM EDT, Key ID b4ebf579069c8460
Source RPM  : accountsservice-0.6.10-2.fc15.src.rpm
Build Date  : Tue 10 May 2011 03:16:29 PM EDT
Build Host  : x86-16.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.fedoraproject.org/wiki/Features/UserAccountDialog
Summary     : D-Bus interfaces for querying and manipulating user account information
Description :
The accountsservice project provides a set of D-Bus interfaces for
querying and manipulating user account information and an implementation
of these interfaces, based on the useradd, usermod and userdel commands.
Comment 3 Ray Strode [halfline] 2011-06-07 19:24:28 UTC
hmm DeleteUser has a signature of "xb" not "x" and it apparently always has and the code does:

        dbus_g_proxy_begin_call (manager->proxy,
                                 "DeleteUser",
                                 delete_user_done,
                                 data,
                                 async_user_op_data_free,
                                 G_TYPE_INT64, um_user_get_uid (user),
                                 G_TYPE_BOOLEAN, remove_files,
                                 G_TYPE_INVALID);

so i'm not sure where the signature "x" is coming from.

I do see in the accounts service code that the accounts object isn't registered until after getting a name on the bus, so that could potentially cause a problem if DeleteUser was activating accounts service.
Comment 4 Tiffany Antopolski 2011-06-07 20:03:00 UTC
it's definitely "x".
Comment 5 Bastien Nocera 2011-06-10 15:13:45 UTC
Can't reproduce it here. What's the output of "rpm -V accountsservice control-center" on your machine? Do you still see the same problem after a reboot?

I can't reproduce the problem, even killing accounts-daemon just before deleting the user (and thus restarting accounts-daemon through activation).
Comment 6 Tiffany Antopolski 2011-06-10 16:03:22 UTC
[tiffany@kilmer ~]$ rpm -V accountsservice control-center
[tiffany@kilmer ~]$ 

I tried doing this on my x86_64 machine, which is also running Fedora15 and I can not reproduce it there.  (The Architecture of the problem machine is i686).  However the output of the above command on that machine is the same on both machines.

I still see the problem after a reboot.
Comment 7 Allison Karlitskaya (desrt) 2011-06-11 04:02:43 UTC
It's a varargs function.  On 32 bit machines you are passing in a 32 bit int and the function is expecting 64.  The typecode for the boolean is probably being consumed as part of the 64 bit int and then the boolean value itself as the next typecode (which is why you crash or not depending on the value).

The fix is to add an explicit (gint64) cast.
Comment 8 Bastien Nocera 2011-06-11 11:42:34 UTC
Much easier to debug when you know it only happens on 32-bit machines :)

Thanks Ryan for the solution. Now in master and gnome-3-0.

commit 36cc21db32664ad14e0d677b44a87e49d9ea7fce
Author: Bastien Nocera <hadess@hadess.net>
Date:   Sat Jun 11 12:40:39 2011 +0100

    user-accounts: Fix deleting users on 32-bit systems
    
    https://bugzilla.gnome.org/show_bug.cgi?id=652073