-
Notifications
You must be signed in to change notification settings - Fork 16
fix: fix treeland get stuck in lockscreen after crash recovery #40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Hi @apr3vau. Thanks for your PR. I'm waiting for a linuxdeepin member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Reviewer's guide (collapsed on small PRs)Reviewer's GuideThis PR adds a new daemon message type and hooks into the socket connection event to immediately convey already authenticated users to Treeland after a crash recovery, preventing the lockscreen from hanging. Sequence diagram for socket connection and user login state recoverysequenceDiagram
participant Display
participant SocketServer
participant Treeland
participant SocketWriter
participant Auth
SocketServer->>Display: connected(socket)
Display->>SocketWriter: create writer for socket
loop for each Auth in loginedSession()
Auth->>Display: isActive()
alt if active
Display->>SocketWriter: send DaemonMessages::UserLogined, auth->user()
SocketWriter->>Treeland: UserLogined message
end
end
Class diagram for updated Display and DaemonMessages typesclassDiagram
class Display {
+void connected(QLocalSocket *socket)
+void login(QLocalSocket *socket, const QString &user, const QString &password, const Session &session)
-QLocalSocket *m_socket
+loginedSession()
}
class DaemonMessages {
<<enum>>
InformationMessage
UserActivateMessage
SwitchToGreeter
UserLogined
}
Display --> QLocalSocket
Display --> DaemonMessages
Display --> SocketWriter
Display --> Auth
Auth : +bool isActive()
Auth : +QString user()
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Treeland will get stuck in lockscreen after a crash recovery, which is caused by unintended login request for already logined user. This commit adds a new DaemonMessages type, and convey logined user to treeland after socket connected, to avoid this problem.
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: apr3vau, wineee The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Treeland will get stuck in lockscreen after a crash recovery, which is caused by unintended login request for already logined user. This commit adds a new DaemonMessages type, and convey logined user to treeland after socket connected, to avoid this problem.
Summary by Sourcery
Send active user session data to Treeland upon socket reconnection to avoid redundant login prompts and lockscreen hangs after crash recovery
New Features:
Bug Fixes:
Enhancements: