-
Notifications
You must be signed in to change notification settings - Fork 73
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
【deepin_V23_beta2】【一般】【有空】【发散测试】【DDE】【启动器】启动器中卸载软件,通知“卸载失败”,而实际成功卸载 #4412
Comments
black-desk
added a commit
to black-desk/dde-application-manager
that referenced
this issue
May 19, 2023
linuxdeepin/developer-center#4412 QProcess::execute will use waitid to get exit code of that process it starts. Register SIG_CHILD and wait all dead childs will break this mechanism, as QProcess will find out that there is no child to wait, and report this situation as a child process exit by crash. So I change the method of launch application to use a double fork, to start process and detach. Just as the way `QProcess` get this job done in its `startDetached` method. As a quick fix, I change the signature of `launch` method as no one use its return value currently. If this is need someday, we should use a pipe to let double forked child process report the return value and errno of its `exec` call. Signed-off-by: black-desk <me@black-desk.cn>
black-desk
added a commit
to black-desk/dde-application-manager
that referenced
this issue
May 19, 2023
linuxdeepin/developer-center#4412 QProcess::execute will use waitid to get exit code of that process it starts. Register SIG_CHILD and wait all dead childs will break this mechanism, as QProcess will find out that there is no child to wait, and report this situation as a child process exit by crash. So I change the method of launch application to use a double fork, to start process and detach. Just as the way `QProcess` get this job done in its `startDetached` method. As a quick fix, I change the signature of `launch` method as no one use its return value currently. If this is need someday, we should use a pipe to let double forked child process report the return value and errno of its `exec` call. Signed-off-by: black-desk <me@black-desk.cn>
black-desk
added a commit
to black-desk/dde-application-manager
that referenced
this issue
May 30, 2023
linuxdeepin/developer-center#4412 QProcess::execute will use waitid to get exit code of that process it starts. Register SIG_CHILD and wait all dead childs will break this mechanism, as QProcess will find out that there is no child to wait, and report this situation as a child process exit by crash. So I change the method of launch application to use a double fork, to start process and detach. Just as the way `QProcess` get this job done in its `startDetached` method. As a quick fix, I change the signature of `launch` method as no one use its return value currently. If this is need someday, we should use a pipe to let double forked child process report the return value and errno of its `exec` call. Signed-off-by: black-desk <me@black-desk.cn>
black-desk
added a commit
to linuxdeepin/dde-application-manager
that referenced
this issue
May 31, 2023
linuxdeepin/developer-center#4412 QProcess::execute will use waitid to get exit code of that process it starts. Register SIG_CHILD and wait all dead childs will break this mechanism, as QProcess will find out that there is no child to wait, and report this situation as a child process exit by crash. So I change the method of launch application to use a double fork, to start process and detach. Just as the way `QProcess` get this job done in its `startDetached` method. As a quick fix, I change the signature of `launch` method as no one use its return value currently. If this is need someday, we should use a pipe to let double forked child process report the return value and errno of its `exec` call. Signed-off-by: black-desk <me@black-desk.cn>
@SuperEffie 请在最新版本中核实是否已经修复合入,如没有合入请将修复优先级调整为1级,已经修复请关闭问题单。 |
【验证环境】 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
SUMMARY | 问题概要
No response
SOFTWARE/OS VERSIONS | 软件/系统版本信息
PRE-REQUIREMENT | 预置条件
No response
STEPS TO REPRODUCE | 复现步骤
OBSERVED RESULT | 观察到的结果
横幅中显示“卸载失败”,而实际已卸载成功
![看图卸载](https://private-user-images.githubusercontent.com/58986464/238878589-8d64fb7b-edb5-47c5-a9d0-e0967a0f9258.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIyNzA0OTAsIm5iZiI6MTcyMjI3MDE5MCwicGF0aCI6Ii81ODk4NjQ2NC8yMzg4Nzg1ODktOGQ2NGZiN2ItZWRiNS00N2M1LWE5ZDAtZTA5NjdhMGY5MjU4LmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI5VDE2MjMxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThhMTkyNTdkODhmM2FlM2MwNTk3YzUzODY5NDMyM2ZlZjQ3ODcxMTI3NjRlNDQ1ZWFkZjQ2MTlmNDFkMGFhNTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.9-pD-l5tKUGRXHgrDhVDw7SIIsYbLkY7bBRKSINZvEw)
EXPECTED RESULT | 期望的结果
通知横幅中显示“卸载成功”
ADDITIONAL INFORMATION | 额外补充
No response
The text was updated successfully, but these errors were encountered: