我正常安装qoder cn user版本后,启动qoder的cpu一直占用高,我使用qoder自己分析了一下,发现是文件权限验证的问题,具体内容如下,部分名字相关隐私已去除,希望新版本可以修复一下:
结论
那个常驻的 powershell.exe 不是恶意程序,是 Qoder 主进程(PID 12416)自己每 ~1.7 秒拉起的一次性子进程,在做「私有文件 ACL 校验」。而它陷入死循环的原因是:Qoder 判定 ACL 是否"私有"的规则过于严格,且它自己的修复命令无法满足该规则,于是"检查→判定不安全→重写→再检查"永不收敛。
证据链
测量 结果
30s 窗口内被拉起的 ACL 检查进程 17 个,父进程全部是 Qoder CN.exe (12416)
单进程 CPU 消耗 3.0–3.5 CPU·秒
20s 窗口累计 40.55 CPU·秒 = 2 个核满载 = 12 核整机的 16.9%
这与你看到的"一直约 10%"量级一致(任务管理器看到的是单个实例)。
对照实验:powershell.exe -NoProfile -Command "1" 空跑一次 = 3109ms CPU / 2266ms wall。这条 ACL 命令本身逻辑不到 1ms,纯粹是被 Windows PowerShell 5.1 冷启动(+Defender 脚本扫描)吃掉的。
该文件的 CreationTime 每 3.5 秒推进一次(15:46:29 → 15:46:33 → 15:46:36),证实它在被不停重建。
该文件的实际 DACL,与 Qoder 的判定函数逐条比对:
code.txt
NT AUTHORITY\SYSTEM Allow 非继承 → 不匹配
S-----**3884 (登录会话) Allow 非继承 → 不匹配
{用户名}{用户名} Allow 非继承 → 匹配
=> isAclPrivate() = False => permissions = "insecure"
Qoder 代码(app.asar 内 authAppStatusMainService / NativePrivateFile)要求 每一条 ACE 的 identity 都等于当前用户:
code.js
return g.length > 0 && g.every(u =>
u.identity.toLocaleLowerCase("en-US") === d && u.type === "Allow" && u.inherited === false)
而它的修复动作只做了:
code.txt
icacls.exe /inheritance:r /grant:r "{用户名}{用户名}:(F)"
/grant:r 只会替换该用户自己那条 ACE,不会移除已存在的 SYSTEM 和登录会话 SID 显式 ACE。所以谓词永远不可能为真。
drainReconcile() 里 insecure 分支直接 requestWrite(),且没有退避(退避数组 [100,500,2000,10000,30000] 只用于抛异常的路径);写完又触发目录 watcher → scheduleReconcile(30ms) → 再次 spawn PowerShell。整条链路唯一的节流就是 PowerShell 自身的耗时,于是稳定地烧住约 2 个核。
建议
要报给 Qoder 的 bug(当前版本 0.3.3),三个修复点任选其一即可:
isAclPrivate 放宽:忽略 NT AUTHORITY\SYSTEM、BUILTIN\Administrators、S-1-5-5-* 登录会话 SID 等内置主体,只要不存在"其他真实用户"即视为私有;
restrictAcl 改强:先清 DACL(icacls /reset 或直接写 SDDL),而不是 /grant:r;
兜底:insecure 分支也要计入 reconcileRetryAttempt 走退避,而不是无限快速重试。
你这边立刻能降下来的:给 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 和 D:\Programs\Qoder CN\ 加 Windows Defender 排除项(需管理员)。单次 spawn 的 3.1 CPU 秒通常能降到 0.3 秒左右,循环虽还在但负载降一个数量级。这是缓解不是根治。
可试的临时止血:手动把该文件 DACL 清成只留 {用户名}{用户名}:F,若某次检查恰好落在干净 ACL 上就会收敛、停止重写(一旦停止写入就不再自我触发)。存在约 1.7 秒的竞争窗口,可能要重复执行几次。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
Qoder CN 是 Qoder CN 系列中面向软件开发场景的核心子产品(原“通义灵码”),提供 IDE、JetBrains 插件、Visual Studio Code 插件等多种使用形态。Qoder CN 持续提供代码智能生成、智能问答、多文件修改、编程智能体等能力,并在模型选择、专家协作、任务规划等方向全面升级,为开发者带来高效、流畅的编码体验。同时面向企业客户提供企业标准版、企业专属版,具备企业级场景自定义、私域知识增强等能力,助力企业研发智能化升级。