anthropics / anthropics/skills

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

Open
#585 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
176k
Forks
20.9k
Avg merge
7h 21m
Merged PRs (30d)
5

Description

## 环境信息
- 操作系统: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

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.