Skip to content
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

Closed
SuperEffie opened this issue May 17, 2023 · 2 comments
Labels
P3 一般优先 回归通过 回归通过

Comments

@SuperEffie
Copy link

SUMMARY | 问题概要

No response

SOFTWARE/OS VERSIONS | 软件/系统版本信息

镜像地址:https://cdimage.uniontech.com/daily-iso/image-beige/CUSTOM/lichenggang/20230516/deepin-23-beige-amd64-20230516-174840.iso
版本信息:dde-launcher:6.0.13

PRE-REQUIREMENT | 预置条件

No response

STEPS TO REPRODUCE | 复现步骤

  1. 使用快捷键super,打开启动器,右键点击某自研应用如“相册”,选择“卸载”
  2. 观察通知横幅中显示

OBSERVED RESULT | 观察到的结果

横幅中显示“卸载失败”,而实际已卸载成功
看图卸载

EXPECTED RESULT | 期望的结果

通知横幅中显示“卸载成功”

ADDITIONAL INFORMATION | 额外补充

No response

@SuperEffie SuperEffie changed the title 【deepin_V23_beta】【一般】【有空】【发散测试】【DDE】【启动器】启动器中卸载软件,通知“卸载失败”,而实际成功卸载 【deepin_V23_beta2】【一般】【有空】【发散测试】【DDE】【启动器】启动器中卸载软件,通知“卸载失败”,而实际成功卸载 May 18, 2023
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>
@babyfengfjx babyfengfjx assigned SuperEffie and unassigned BLumia Aug 15, 2023
@babyfengfjx
Copy link

@SuperEffie 请在最新版本中核实是否已经修复合入,如没有合入请将修复优先级调整为1级,已经修复请关闭问题单。

@SuperEffie
Copy link
Author

【验证环境】
【镜像地址】:https://cdimage.uniontech.com/community/releases/23-Alpha2/deepin-desktop-community-23-Alpha2-amd64.iso
【版本信息】:dde-launcher:6.0.14
【备注信息】:加入内测更新到最新版本进行该问题验证
【验证结论】:测试通过,关闭此issue
【录屏信息】:
卸载

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P3 一般优先 回归通过 回归通过
Projects
Status: CLOSED
Development

No branches or pull requests

3 participants