Pkexec hangs (4.4.0.72 & 4.4.0.68) when switching sshd on/off

REPRODUCIBILITY: every time
OS VERSION: 4.4.0.72 & 4.4.0.68 tested
HARDWARE: x10 iii, xperiax
UI LANGUAGE: finnish
REGRESSION:

DESCRIPTION:

After switching sshd on/off in Settings → Developer tools, pkexec [command] hangs.

PRECONDITIONS:

Rebooted device - “developer mode” (or what is “Kehitystila” in english) on

STEPS TO REPRODUCE:

Launch fingerterm from icon (so it gets launched via “invoker” or so)

on terminal enter:

$ pkexec /bin/sh

after entering PIN, root shell prompt should appear (in this test case)

exit root shell (leave terminal running for quick re-try)

then, go to Settings → Developer Tools and either enable or disable
sshd (i.e. change it’s running state) (in case of enabling, PIN has to be
given, in case of disabling, let remorse timer pass…)

now go to terminal and re-execute

$ pkexec /bin/sh

the command just hangs (for me). starting new terminal and executing pgrep -f -a pkexec shows the hanging process. exiting terminal will “kill” the pkexec process

EXPECTED RESULT:

When running pkexec /path/to/program request to enter PIN would appear and
after giving correct pin, program would run with root privileges.

ACTUAL RESULT:

execution of pkexec hangs – the pkexec process needs to be signaled for it to exit.

MODIFICATIONS:

I cannot think of any…

ADDITIONAL INFORMATION:

nothing relevant in dmesg,

$ devel-su journalctl | grep -e FAILED -e polkit shows after exiting terminal:

Xperia10III polkitd(authority=local)[6750]: Operator of unix-session:1 FAILED to authenticate to gain authorization for action org.freedesktop.policykit.exec for unix-process:13794:173774 [] (owned by unix-user:defaultuser)

– after rebooting – then after successful pkexec /bin/sh execution in terminal (on another terminal where ssh’d in):

$ devel-su journalctl | grep -e polkit -e FAILED

tammi 28 11:53:55 Xperia10III dbus-daemon[2044]: [system] Activating via systemd: service name=‘org.freedesktop.PolicyKit1’ unit=‘polkit.service’ requested by ‘:1.93’ (uid=100000 pid=6434 comm="/usr/libexec/lipstick-security-ui" label=“u:r:kernel:s0”)
tammi 28 11:53:55 Xperia10III dbus-daemon[2044]: dbus-daemon[2044]: [system] Activating via systemd: service name=‘org.freedesktop.PolicyKit1’ unit=‘polkit.service’ requested by ‘:1.93’ (uid=100000 pid=6434 comm="/usr/libexec/lipstick-security-ui" label=“u:r:kernel:s0”)
tammi 28 11:53:55 Xperia10III polkitd[6544]: started daemon version 0.105 using authority implementation local' version 0.105’
tammi 28 11:53:55 Xperia10III polkitd(authority=local)[6544]: Registered Authentication Agent for unix-session:1 (system bus name :1.93 [/usr/libexec/lipstick-security-ui], object path /org/sailfishos/Lipstick/SecurityUi/PolkitAgent, locale fi_FI.utf8)
tammi 28 11:54:33 Xperia10III polkitd(authority=local)[6544]: Operator of unix-session:1 successfully authenticated as unix-user:sailfish-code to gain ONE-SHOT authorization for action org.freedesktop.policykit.exec for unix-process:7974:7700 [/bin/bash --login] (owned by unix-user:defaultuser)
tammi 28 11:54:33 Xperia10III pkexec[8002]: pam_systemd(polkit-1:session): Using 600s D-Bus method call timeout
tammi 28 11:54:33 Xperia10III pkexec[8002]: pam_systemd(polkit-1:session): Cannot create session: Already running in a session
tammi 28 11:54:33 Xperia10III pkexec[8002]: pam_unix(polkit-1:session): session opened for user root by (uid=100000)
[defaultuser@Xperia10III ~]$

Thank you for your bug report. I could easily reproduce it.

Added to internal bug tracker