Releases: alibaba/arthas
arthas-all-4.1.5
Arthas 4.1.5 Release Notes
发布日期: 2026-01-10
本次版本包含 15 个提交,主要新增堆内存分析功能、MCP viewfile 工具、ClassLoader 精确增强等重要特性。
🚀 新特性 (Features)
1. vmtool 新增堆内存分析功能 (#1915, #3122)
感谢 @yuankong11
新增两个强大的堆内存分析 action:
heapAnalyze - 分析堆内存占用
vmtool --action heapAnalyze --classNum 5 --objectNum 3- 从 GC Root 可达对象出发,统计各个类的实例数量与占用字节数
- 输出占用最大的若干对象与类
- 支持
--classNum指定展示的类数量,--objectNum指定展示的对象数量
referenceAnalyze - 分析对象引用链
vmtool --action referenceAnalyze --className java.lang.String --objectNum 5 --backtraceNum 3- 分析某个类的实例对象,输出占用最大的若干对象及其引用回溯链(从对象回溯到 GC Root)
- 支持
--backtraceNum参数指定回溯层数(-1 表示一直回溯到 root,0 表示不输出引用链)
2. watch/trace/stack/tt/monitor 支持 ClassLoader Hash (#3120)
所有增强类命令新增 -c/--classloader 参数,支持指定 ClassLoader 精确增强:
sc -d com.example.Foo
watch -c 3d4eac69 com.example.Foo bar '{params,returnObj}'
trace -c 3d4eac69 com.example.Foo bar
stack -c 3d4eac69 com.example.Foo bar- 解决同名类被多个 classloader 加载时的增强歧义问题
- 可先用
sc -d查看 classloader hash,再用-c指定
3. MCP 新增 viewfile 工具 (#3121)
MCP Server 新增文件查看工具,支持分段读取大文件:
- 支持 cursor/offset 分段读取,避免一次性返回大量内容
- 支持目录白名单配置(环境变量
ARTHAS_MCP_VIEWFILE_ALLOWED_DIRS) - 默认允许目录:arthas-output、
~/logs/
4. AnsiLog 可配置输出流 (#3128)
- AnsiLog 支持自定义输出流配置,不再硬编码使用 System.out
- 便于日志输出的灵活控制和重定向
5. as-package.sh 支持 --fast 模式
打包脚本新增 --fast 参数,支持快速打包模式,提升开发效率。
🐛 Bug 修复 (Bug Fixes)
1. 修复 MCP 禁用时访问 arthas-output 的空指针异常 (#3127)
修复当 MCP 功能禁用时,访问 arthas-output 目录会抛出 NullPointerException 的问题。
📦 依赖更新 (Dependencies)
- 升级 byte-buddy 依赖至 1.18.3 版本
🔧 工程改进 (Engineering)
1. 新增 Telnet 停止泄漏集成测试 (#3125)
- 新增 telnet-stop-leak 测试目录
- 包含自动化测试脚本和 expect 脚本
- 新增 GitHub Actions 工作流支持
2. MCP 集成测试增强
- 新增 profiler 和 viewfile 工具的集成测试
- 新增 ViewFileToolTest 单元测试
3. EnhancerTest 修复与增强
- 修复 EnhancerTest 测试用例
- 新增 ClassLoader hash 增强相关测试
相关 Issue
arthas-all-4.1.5-qlexpress
arthas 里的表达式支持 qlexpress 。
文档: https://github.com/alibaba/arthas/blob/qlexpress/site/docs/doc/qlexpress.md
arthas-all-4.1.4
Arthas 4.1.4 Release Notes
发布日期: 2025-12-29
🚀 新特性 (Features)
MCP Server 增强
- 新增 Profiler MCP 工具 - 支持通过 MCP 协议进行性能分析 (
profiler命令) - 新增 sc MCP 工具 - 支持通过 MCP 搜索类 (#3107)
- 新增 sm MCP 工具 - 支持通过 MCP 搜索方法
- 新增 options MCP 工具 - 支持通过 MCP 查看/修改全局选项
- 新增 StopTool - 支持通过 MCP 停止 Arthas
- MCP Server 默认使用 STREAMABLE 协议 - 改进 SSE 流式传输,keepalive 间隔 15s (#3114)
- 新增 MCP 集成测试模块 (arthas-mcp-integration-test) (#3115)
classloader 命令增强
- classloader 支持
--url-classes选项 - 可以查看 URLClassLoader 加载的类来源 (#3098)
🐛 Bug 修复 (Bug Fixes)
内存泄漏修复
- 修复 Netty InternalThreadLocalMap ThreadLocal 泄漏问题 - 升级 termd 到 1.1.7.15 (#1794)
- 修复 ThreadLocal ClassLoader 泄漏问题 - 改进
ThreadLocalWatch实现
MCP Server 修复
- 修复 MCP last-event-id 请求返回 404 问题 (#3118)
- 修复 mcp-keep-alive-scheduler 线程未停止问题
- 优化 MCP session 校验 - 防止 2 秒超时延迟
其他修复
📚 文档更新 (Documentation)
- 修复
tt命令文档中-t参数示例 - 在
stop命令文档中添加retransform相关说明 - 更新
classloader命令文档,添加--url-classes用法
🔧 依赖升级 (Dependencies)
| 依赖 | 旧版本 | 新版本 |
|---|---|---|
| termd-core | 1.1.7.14 | 1.1.7.15 |
| mcp (新增) | - | 0.17.0 |
📦 构建变更 (Build)
- 新增 JDK 17+ profile,自动包含 arthas-mcp-integration-test 模块
- 修复 build-vmtool.yaml 构建配置
arthas-all-4.1.3
Arthas 4.1.3 Release Notes
发布日期: 2025-12-08
概述
Arthas 4.1.3 版本主要对 MCP Server 进行了重大重构,提升了架构的可维护性和扩展性,同时修复了多个稳定性问题,并增强了 watch/trace 等核心命令的功能。
🚀 新特性
MCP Server 架构重构
- 重构 MCP Server 为 Streamable/Stateless 单服务架构 (#3096)
- 简化了 MCP Server 的整体架构设计
- 支持更灵活的部署方式
功能增强
-
watch/trace 命令支持 timeout 参数 (#3089)
- 可设置命令执行超时时间,避免长时间阻塞
-
enhance 命令支持 lazy 模式
- 延迟增强,提升灵活性
MCP 功能优化
- MCP 支持 Arthas 认证:
McpStatelessServer支持 arthas auth 和 userId - MCP 默认使用 ObjectView 格式:提升输出可读性
- MCP watch/trace 工具
numberOfExecutions默认值改为 1 - MCP 默认超时时间调整为 30 秒
🐛 Bug 修复
-
修复 SessionImpl 空值异常 (#3094)
- 解决调用
setForegroundJob(null)时的 NPE 问题
- 解决调用
📦 依赖更新
- Netty BOM 版本保持 4.1.128.Final
- MCP SDK 版本: 0.17.0
📊 统计信息
- 提交数: 14 commits
- 文件变更: 131 files changed
- 代码变更: +1,300 / -717 行
👥 贡献者
感谢以下贡献者对本版本的贡献:
- hengyunabc (11 commits)
- Yeaury (2 commits)
- XiLeePapa (1 commit)
arthas-all-4.1.2
Arthas 4.1.2 Release Notes
发布日期: 2025-11-27
🚀 新特性 (Features)
1. 用户追踪统计功能 (#3087)
- 新增
userId字段到 Session 接口 - 支持从 HTTP 请求头 (
X-User-Id) 和 URL 参数中提取 userId - 在所有命令执行路径中传递 userId(HTTP API、MCP Server、命令执行器)
- 在
session命令输出中显示 userId - 将 userId 包含在使用统计报告中
2. MCP 协议升级至 2025-06-18 版本 (#3084)
- 升级 MCP 协议版本,支持 elicitation 特性
- 新增
MCP-Protocol-Version支持 - 增强 MCP Schema 定义(+566 行新增代码)
- 新增
ProtocolVersions类用于协议版本管理
🐛 Bug 修复 (Bug Fixes)
1. 修复 interrupt 状态判断问题 (#3079)
- 修复当进程处于
TERMINATED状态时,interrupt 操作应该成功的问题 - 解决
HttpApiHandler.processExecRequest在 job 状态为 TERMINATED 时的竞态条件
2. 修复拼写错误 (#3080)
- 修复文档和代码中的拼写错误
📦 依赖升级 (Dependencies)
- Netty: 升级至
4.1.128.Final(#3085)
🔧 其他改进 (Other Changes)
- 移除 Expert 文档内容(清理约 60 个过时的 expert 问答文档)
- 升级 GitHub CodeQL Action 至 v3
- 禁用 Java CodeQL 分析
📊 变更统计
- 文件变更: 100 个文件
- 新增行数: +848
- 删除行数: -4,250
👥 贡献者
感谢以下贡献者对本版本的贡献:
- hengyunabc (6 commits)
- Yeaury (1 commit)
- yande2011 (1 commit)
- hzqnull (1 commit)
arthas-all-4.1.1
Arthas 4.1.1 Release Notes
发布日期: 2025-10-23
Arthas 4.1.1 是一个补丁版本,主要修复了通过远程 IP 访问时的认证失败问题。
🐛 Bug 修复
修复远程 IP 访问时的认证失败问题 (#3076)
问题描述:
在 4.1.0 版本中,当通过远程 IP 访问 Arthas Web Console 或 MCP Server 时,即使提供了正确的认证凭据,也会出现认证失败的情况。
根本原因:
BasicHttpAuthenticatorHandler 中的认证逻辑存在缺陷:
- 已认证的 Subject 对象没有正确设置到 Channel 的 Attribute 中
- 在 Session 中存在认证信息但 Channel Attribute 中缺失时,后续请求会重新触发认证流程
- 远程连接场景下,本地 Principal 判断逻辑未能正确处理
修复内容:
- 重构认证流程: 将嵌套的
if (msg instanceof HttpRequest)逻辑拆分为扁平化结构,提高代码可读性 - 提取公共方法: 新增
setAuthenticatedSubject()方法,统一处理 Subject 的设置逻辑 - 修复状态同步: 确保 Subject 同时设置到 Channel Attribute 和 Session 中,保持状态一致性
- 改进会话处理: 在从 Session 中恢复认证状态时,同步设置 Channel Attribute
影响范围:
- HTTP Basic Authentication
- MCP Server Bearer/Basic Authentication
- 远程 IP 访问场景
相关文件:
core/src/main/java/com/taobao/arthas/core/shell/term/impl/http/BasicHttpAuthenticatorHandler.java
贡献者: Zhang Yu (@3144550951)
📝 文档更新
- 更新
CONTRIBUTING.md贡献指南
📊 变更统计
- 提交数: 3
- 文件变更: 3 个文件
- 代码行数: +54 行新增, -41 行删除
🔗 相关链接
- Pull Request: #3076
- Issue 跟踪: 修复远程 IP 访问认证失败问题
- 提交范围: arthas-all-4.1.0...arthas-all-4.1.1
⬆️ 升级建议
从 4.1.0 升级到 4.1.1:
- 无需任何配置变更
- 无 API 破坏性变更
- 建议所有使用远程访问功能的用户升级
📦 下载
请访问 GitHub Releases 下载最新版本。
arthas-all-4.1.0
Issues: https://github.com/alibaba/arthas/milestone/57?closed=1
重要功能:
其它功能:
Full Changelog: arthas-all-4.0.5...arthas-all-4.1.0
arthas-all-4.0.5
Issues: https://github.com/alibaba/arthas/milestone/56?closed=1
-
#2997 使用 async-profiler nightly 版本 ,解决 jdk 21 crash 问题
-
#2962 使用profiler loop功能报错
-
#2952 SpyAPI.atEnter 可能抛出 ConcurrentModificationException
-
#2955 新版本 ognl 有一个 UseStricterInvocation 模块,默认开启,执行 ognl 表达式容易出现: cannot be called from within OGNL invokeMethod() under stricter invocation mode
-
#2957 解决abortProcess的并发问题
-
#2990 arthas打印的 main class 失效,在新版本jdk里获取失败
-
#2986 升级netty版本到 4.1.119.Final
-
#2968 某些 ClassLoader 实现调用 getURLs() 可能抛出异常,需要处理
-
升级asm 到 9.7.1
arthas-all-4.0.4
release 4.0.4