[systemsettings] [Bug 337395] New: systemsettings hangs when changing full name, blocking on chfn which waits with a password prompt

JR zorael at gmail.com
Sat Jul 12 13:11:15 BST 2014


https://bugs.kde.org/show_bug.cgi?id=337395

            Bug ID: 337395
           Summary: systemsettings hangs when changing full name, blocking
                    on chfn which waits with a password prompt
           Product: systemsettings
           Version: unspecified
          Platform: Archlinux Packages
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: kcm_useraccount
          Assignee: unassigned-bugs at kde.org
          Reporter: zorael at gmail.com

[Arch x86_64]

systemsettings --version:
  Qt: 4.8.6
  KDE Development Platform: 4.13.2
  System Settings: 4.11.10

When applying changes to the user's full name under Account Details -> Password
& User Account, a graphical password prompt is spawned, but the application
freezes upon entering the password and hitting OK.

Reproducible: Always

Steps to Reproduce:
1. Open systemsettings, navigate to Account Details -> Password & User Account
2. Change full name
3. Hit Apply
4. Enter correct password in graphical prompt
Actual Results:  
5. Application hangs, has to be terminated

Expected Results:  
6. Name is changed, application control restored

A process tree shows the application having executed /usr/bin/chfn -f NewName.
>`-systemsettings,25207 --sync --nofork --nocrashhandler
>       `-chfn,25208,root -f NewName
The fields are [cmd, pid, transitioned uid, args], so note that it's been run
as root without having specified the real account to modify.

A backtrace of the systemsettings process (http://pastebin.com/fk0SvL16) shows
it waiting for said child process to finish:
#0  0x00007fa5dc4f0553 in select () from /usr/lib/libc.so.6
#1  0x00007fa5c0385536 in KDESu::PtyProcess::waitForChild() () from
/usr/lib/libkdesu.so.5
#2  0x00007fa5c07d5f4d in ?? () from /usr/lib/kde4/kcm_useraccount.so
#3  0x00007fa5c07d8e42 in ?? () from /usr/lib/kde4/kcm_useraccount.so
#4  0x00007fa5dec8ec77 in KCModuleProxy::save() () from
/usr/lib/libkcmutils.so.4
#5  0x00007fa5dea63e03 in ModuleView::moduleSave(KCModuleProxy*) () from
/usr/lib/libsystemsettingsview.so.2

A backtrace of the chfn process shows it trying to read input:
#0  0x00007f348f4057a0 in __read_nocancel () from /usr/lib/libc.so.6
#1  0x00007f348f6d8881 in ?? () from /usr/lib/libpam_misc.so.0
#2  0x00007f348f6d8c90 in misc_conv () from /usr/lib/libpam_misc.so.0
#3  0x00007f348f8e2c90 in pam_vprompt () from /usr/lib/libpam.so.0
#4  0x00007f348f8e2eea in pam_prompt () from /usr/lib/libpam.so.0
#5  0x00007f348eb03e48 in ?? () from /usr/lib/security/pam_unix.so
#6  0x00007f348eb011f4 in pam_sm_authenticate () from
/usr/lib/security/pam_unix.so
#7  0x00007f348f8dde1f in ?? () from /usr/lib/libpam.so.0
#8  0x00007f348f8dd6b0 in pam_authenticate () from /usr/lib/libpam.so.0

Forcefully killing the chfn process makes systemsettings give up with an error
message:
>An error occured and your name probably has not been changed. The error message was:
>Password:

Conjecture: systemsettings spawns a chfn child process and waits for it to
exit, but chfn waits reading the password from stdin, and we get a deadlock.

-- 
You are receiving this mail because:
You are the assignee for the bug.



More information about the Unassigned-bugs mailing list