Greeter not asking for pin code in image 11 (krillin)

Bug #1365095 reported by Ricardo Salveti on 2014-09-03
This bug affects 6 people
Affects Status Importance Assigned to Milestone
systemd-shim (Ubuntu)
Steve Langasek
systemd-shim (Ubuntu RTM)
Status tracked in 14.09

Bug Description

Flashed with: adb reboot bootloader; ubuntu-device-flash --channel=ubuntu-touch/utopic-proposed --bootstrap

phablet@ubuntu-phablet:~$ system-image-cli -i
current build number: 11
device name: krillin
channel: ubuntu-touch/utopic-proposed
last update: 2014-09-03 17:25:13
version version: 11
version ubuntu: 20140903.1
version device: 20140902-42bae3c

Wizard worked fine, and I selected pin code, adding my passwd with 4 digits, but Unity8 is not requesting my pin once it's up (not even after reboot). The welcome wizard is also showing up at every boot.

Nothing special in the wizard, accepted everything and skipped the network setup.

Ricardo Salveti (rsalveti) wrote :
Download full text (10.1 KiB)

phablet@ubuntu-phablet:~$ cat .cache/upstart/unity8.log
qtmir.mir: MirServerConfiguration created
qtmir.mir: MirPlacementStrategy::MirPlacementStrategy
qtmir.mir: SessionListener::SessionListener - this= SessionListener(0x1158104)
qtmir.mir: PromptSessionListener::PromptSessionListener - this= PromptSessionListener(0x11583a4)
QtCompositor::setAllWindowsExposed true
qtmir.applications: UnityApplicationPlugin::registerTypes - this= UnityApplicationPlugin(0x124f648) uri= Unity.Application
qtmir.applications: applicationManagerSingleton - engine= QQmlEngine(0x1161c48) scriptEngine= QObject(0x0)
qtmir.applications: ApplicationManager::ApplicationManager (this=%p) qtmir::ApplicationManager(0x1262140)
qtmir.mir: SessionListener::starting - this= SessionListener(0x1158104) session= 0xae4046a4
qtmir.mir: SessionListener::focused - this= SessionListener(0x1158104) session= 0xae4046a4
qtmir.mir: SessionAuthorizer::connection_is_allowed - this= SessionAuthorizer(0x11559b4) pid= 2211
 Could not determine application identifier. HUD will not work properly.
 Provide your application identifier in $APP_ID environment variable.
Fail to connect with service: QDBusError("org.freedesktop.DBus.Error.ServiceUnknown", "The name com.canonical.pim was not provided by any .service files")
qtmir.applications: applicationManagerSingleton - engine= QQmlEngine(0x1161c48) scriptEngine= QQmlEngine(0x1161c48)
qtmir.applications: surfaceManagerSingleton - engine= QQmlEngine(0x1161c48) scriptEngine= QQmlEngine(0x1161c48)
qtmir.surfaces: MirSurfaceManager::MirSurfaceManager - this= qtmir::MirSurfaceManager(0x1603000)
file:///usr/share/unity8/Shell.qml:595:5: QML Binding: Binding loop detected for property "target"
Initializing AalServicePlugin
Creating a new static Service instance
virtual int AalMediaPlayerControl::volume() const

virtual QMediaPlayer::State AalMediaPlayerControl::state() const

virtual QMediaPlayer::MediaStatus AalMediaPlayerControl::mediaStatus() const

virtual QMediaPlayer::MediaStatus AalMediaPlayerControl::mediaStatus() const

virtual void AalMediaPlayerControl::stop()

virtual void AalMediaPlayerControl::setMedia(const QMediaContent&, QIODevice*)

PlaybackStatusChanged signal arrived via the bus.
virtual void AalMediaPlayerControl::play()

virtual QMediaPlayer::MediaStatus AalMediaPlayerControl::mediaStatus() const

virtual QMediaPlayer::MediaStatus AalMediaPlayerControl::mediaStatus() const

qtmir.applications: ApplicationManager::onSessionStarting - sessionName= pay-service
qtmir.applications: ApplicationManager::onSessionStarting - unmanaged application starting
qtmir.applications: ApplicationManager::authorizeSession - pid= 2211
qtmir.mir: SessionAuthorizer::configure_display_is_allowed - this= SessionAuthorizer(0x11559b4) pid= 2211
qtmir.mir: SessionAuthorizer::screencast_is_allowed - this= SessionAuthorizer(0x11559b4) pid= 2211
qtmir.mir: SessionAuthorizer::prompt_session_is_allowed - this= SessionAuthorizer(0x11559b4) pid= 2211
qtmir.mir: SessionListener::starting - this= SessionListener(0x1158104) session= 0xae5032d4
qtmir.mir: SessionListener::focused - this= SessionListener(0x...

Michael Terry (mterry) wrote :

I get this too. Not the "wizard on every boot issue" but the "no pin code being asked" issue.

Looks like the wizard isn't actually setting the PIN code. :( Looking into it.

Changed in unity8 (Ubuntu):
status: New → Confirmed
kevin gunn (kgunn72) wrote :

on image 220 on n4 i don't see this problem ?

my incantation
ubuntu-device-flash --channel=ubuntu-touch/utopic-proposed --bootstrap --developer-mode

Michael Terry (mterry) wrote :

This is affecting more than just the password setting. Anything that tries to set AccountsService fields isn't working. They are failing because the user is not authenticated via policykit.

But this is only because policykit is using the allow_any field of the org.freedesktop.accounts.change-own-user-data permission. Which is only used if the requester is not a part of a logind session. logind is correctly marking the session as active. But for some reason, policykit thinks the app is not in the session.

Looking into why.

Michael Terry (mterry) wrote :

This seems to be related to lightdm 1.11.8. I can reproduce only starting with krillin utopic-proposed image 11, which introduced that version.

Alexander Sack (asac) on 2014-09-05
tags: added: rtm14
Changed in unity8 (Ubuntu):
importance: Undecided → High
Michael Terry (mterry) wrote :

@kgunn, this is only on krillin

Last night, I debugged this to just r2041 of lp:lightdm. Looking for a fix. Rob filed bug 1365886 about the issue too. Not sure which we want to keep.

Michael Terry (mterry) wrote :

Based on the guess that the removed sync dbus call in r2041 was causing a difference in timing, I added a sleep 5 to that same code line. That seems to fix the problem!

Adding a sleep 5 to the lightdm upstart job however, does not fix the problem. There are no relevant upstart jobs that are waiting for "started lightdm" (only mpt does). So I'm guessing it's a dbus activation race inside lightdm itself...

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in lightdm (Ubuntu):
status: New → Confirmed
Michael Terry (mterry) wrote :

OK, we tracked it down to a race between the fork in lightdm's session-child code and the cgroups being assigned to the process.

If it took too long for the cgroups to be assigned, the session would have already been spawned and only the "lightdm --session-child" process would have the right cgroups, but the session itself wouldn't. But if the cgroups got assigned before the fork, they would be inherited correctly.

The bug was in systemd-shim, which made an async call. Which meant that PAM might return before cgroups were assigned, which meant the race. desrt is going to fix it by just making that call sync.

Michael Terry (mterry) on 2014-09-05
no longer affects: lightdm (Ubuntu)
affects: unity8 (Ubuntu) → systemd-shim (Ubuntu)
Changed in systemd-shim (Ubuntu):
assignee: nobody → Steve Langasek (vorlon)
affects: unity8 (Ubuntu-rtm 14.09) → systemd-shim (Ubuntu-rtm 14.09)
Steve Langasek (vorlon) wrote :

fix cherry-picked into Debian, will be synced into utopic ASAP.

Changed in systemd-shim (Ubuntu):
status: Confirmed → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package systemd-shim - 7-3

systemd-shim (7-3) unstable; urgency=medium

  * debian/patches/0001-cgmanager-stop-doing-async-calls.patch:
    cgmanager: stop doing async calls; fixes a race condition on login.
    Thanks to Ryan Lortie <email address hidden>. Closes LP: #1365095.

 -- Steve Langasek <email address hidden> Fri, 05 Sep 2014 15:49:39 -0700

Changed in systemd-shim (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers