Merge lp:~mterry/lightdm/session-issues into lp:lightdm
Status: | Merged |
---|---|
Merge reported by: | Robert Ancell |
Merged at revision: | not available |
Proposed branch: | lp:~mterry/lightdm/session-issues |
Merge into: | lp:lightdm |
Diff against target: |
222 lines (+154/-1) 7 files modified
src/greeter.c (+14/-1) tests/Makefile.am (+2/-0) tests/data/sessions/greeter-mir.desktop (+6/-0) tests/scripts/session-greeter-switch.conf (+74/-0) tests/scripts/session-greeter-twice.conf (+54/-0) tests/test-session-greeter-switch (+2/-0) tests/test-session-greeter-twice (+2/-0) |
To merge this branch: | bzr merge lp:~mterry/lightdm/session-issues |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
LightDM Development Team | Pending | ||
Review via email: mp+301206@code.launchpad.net |
Commit message
There are two in-session bugs fixed here.
One is a lightdm crash when an in-session greeter tries to authenticate any user a second time.
The second fix stops lightdm from closing a session if a greeter tries to start a new authentication after already succeeding in authenticating a user.
== The crash ==
Fixed by r2378 in this branch. It seemed the seat was shutting down the greeter-session's authentication session. But the greeter wasn't watching its auth session to see when it got closed. And it would try to use it later.
So I've simply added a watch for that signal.
== Closing a session ==
Fixed by r2379 in this branch. If a greeter-session's authentication session becomes a real boy, we don't want to stop that session when doing a new authentication.
So if the auth session is running a command, I've changed the code to not close the session when resetting the greeter state.
Description of the change
About the closing-session bug, I think it would have been a problem with old greeters too, not just in-session ones? But they typically don't start a new auth, and instead get shut down.
I've added a test for that closing-session bug, but I did embed it inside a semi-unrelated test that used a mir greeter session and switched users and all. I didn't try to find a smallest-possible test for it.
Both of these may not be the perfect solution? I just tried to fix what I saw. Maybe you think these issues need more code rethinking?
I've looked at the first issue (the segfault) in revision 2378. This turned out to be a reference count issue, I've taken your test and fixed in in trunk revision 2382.