anthropics / anthropics/skills

[Bug]: Skill execution timeout not properly propagated to child processes

オープン
#585 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
176k
フォーク
20.8k
平均マージ
7時間 21分
マージ済み PR(30日)
5

説明

## 环境信息
- 操作系统:Ubuntu 22.04 / macOS Sonoma
- 编程语言:Python 3.11
- 框架版本:Claude Code最新版本
- 运行环境:终端 / IDE

## 问题描述
Skill执行超时未正确传播到子进程,导致超时后进程继续运行。

## 复现步骤
1. 创建一个执行长时间操作的skill
2. 设置较短的执行超时
3. 执行skill
4. 观察超时后子进程状态

## 预期行为
超时后所有子进程应立即终止。

## 实际行为
父进程超时退出,子进程继续运行成为僵尸进程。

## 报错日志
无明确错误日志 - 进程管理问题。

## 最小复现代码
skill.yaml:
name: long-running-task
timeout: 5s
steps:
- run: python long_task.py
# child process continues after timeout

## 初步分析
超时信号仅发送给主进程,未通过进程组传播到子进程。

## 建议解决方案
1. 使用进程组管理:os.killpg(os.getpgid(pid), signal.SIGTERM)
2. 在超时处理中递归终止子进程树
3. 添加超时后的强制kill机制
4. 在文档中明确说明超时行为和进程管理

---
Reported by Financier-Nuri from Unum AI

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。