You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
环境
node --import tsx/esm apps/cli/src/bin.ts web(HEAD46a7f68b09)workspace-write(sandboxworkspace-write+ approvalask)danger-full-access(sandbox 不限制 + approvalnever)pwsh工具(非tool-pwsh-persistent),已核对会话日志中记录的 tool schema@larksuite/cli)。PowerShell 解析到 npm shimlark-cli.ps1→node scripts/run.js→execFileSync(bin/lark-cli.exe, args, { stdio: 'inherit' }),原生 exe 约 40 MB现象
在
workspace-write会话里,模型用pwsh工具执行 lark-cli,调用永久不返回:tool/call,之后没有tool/result(两个会话、两次独立复现)dsh web进程随后单核持续 70%~100% CPU,累计 CPU 到手动 kill 时分别为 144.8s、277.6scurl --max-time 6 http://127.0.0.1:3080/→ 0 字节)timeoutMs: 120000(另一次未传)没有产生任何结果,只能手动 kill 恢复复现步骤
pnpm dsh web。默认权限预设即workspace-write,见packages/bundle/base/cordis.patch.yml:247:mode: !!js process.env.DSH_PERMISSION_MODE ?? 'workspace-write'lark-cli --version最小复现建议:凡"Node/npm 包装的 CLI"都应能触发,可对照
pnpm --version、npx --version(未逐一验证)。对照实验:同一台机器、同一条命令、同一个工具
lark-cli --versionlark-cli docs +fetchworkspace-writedanger-full-accesslark-cli version 1.0.64DSH 环境之外、无沙箱、stdout 为管道时的补充对照:
lark-cli --version、lark-cli docs +fetch ...均 0.4~0.5s 返回tool-pwsh同款 marker wrapper 后同样正常LARKSUITE_CLI_NO_UPDATE_NOTIFIER=1/LARKSUITE_CLI_NO_SKILLS_NOTIFIER=1开关无差异唯一变化量是沙箱模式。
推断的根因
观测到的事实:只有受限模式会挂。受限模式下命令经
ctx.sandbox.confine()包装,用受限令牌 argv 走继承的子进程路径(packages/shell/pwsh-sandbox、packages/sandbox/sandbox-windows-acl)。推断:
tool-pwsh的模型侧说明本身写明受限模式下"程序无法打开命名管道,Node 的child_process.spawn/exec(默认stdio: 'pipe')会 EPERM"。lark-cli 正是这种形态(Node shim → 原生 exe → 内部再起子进程)。预期是干净的 EPERM/拒绝,实际是在受限令牌下阻塞:子进程不退出、不报错、几乎不产生 I/O;父进程事件循环被占住,定时器也不再触发,最终整个 web 服务失去响应。具体阻塞点尚未定位:本机没有 PTY 复现手段,卡死进程启动时也未带
--inspect,拿不到栈。影响
workspace-write下都可能卡死会话dsh web,超时兜底不生效,只能手动 kill已排除
tool-pwsh-persistent(持久 PTY shell):复现会话用的是 fresh-processpwsh,schema 与日志已核对建议修复
SANDBOX_DENIED),不能阻塞等待。--inspect/--prof抓热点,便于定位此类卡死。下一步排查(可选)
用
node --prof --logfile=<dir> --import tsx/esm apps/cli/src/bin.ts web起服务,复现后强杀进程,再用node --prof-process读热点函数,可直接看到卡在哪个循环。相关:#7720(Windows ACL 沙箱初始化失败,属同一区域但不同故障)
All reactions