Skip to content

weasel.dll 导致应用进程卡死,附详细堆栈信息 #1878

Description

@Renleilei1992

上报前请检查

  • [√ ] 我遇到的问题没有其他人在 issue 里提到过:有其它issue提到,但他们的信息不算完整,未抓堆栈和解析符号
  • [√ ] 我的小狼毫版本于 rime/weasel 下载:官方下载渠道
  • [√ ] 我在使用小狼毫的最新发布版本,或最新发布版本后的 CI 构建:使用的 0.17.4 发布版本

操作系统信息

  • OS 详细版本: [ 10.0.19045 ]
  • 小狼毫版本: [ 0.17.4]

描述遇到的问题
应用程序启动的子进程卡死在weasel.dll中(未崩溃,但长时间卡死无响应),附加符号后卡死的堆栈如下图所示:

Image

复现步骤
重现问题的步骤,如:

  1. 打开 A 软件(该软件为公司内部软件,非公开软件)
  2. A软件打开图片查看器,会唤起子进程显示图片
  3. 未进行操作,子进程发生卡死无响应
  4. 遇到了 子进程卡死在weasel.dll 问题,某些场景下必现,平时正常不会复现

预期行为
预期小狼毫确认下该问题是否可以进行修复

用户文件
暂无

截图

Image

其他补充说明

  1. 附加PDB符号后看到是如上图所示的ipc写入逻辑中,即函数 PipeChannelBase::_WritePipe,该函数会在目标进程主线程中写入命名管道并于 WeaselServer.exe进行通信,等待对方消费,I/O 可能由于各种原因卡住继而导致用户的目标进程发生卡死问题
  2. 可以尝试将IPC的 I/O 操作放到子线程中执行,卡用户UI会导致用户体验受到影响

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions