GNOME Bugzilla – Bug 652073
Unable to delete user
Last modified: 2011-06-11 11:42:34 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
what version of accountsservice do you have installed?
[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.
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.
it's definitely "x".
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).
[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.
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.
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