Go.1.25.4 和 Go.1.24.10 发布了!!

一、前言

2025 年 11 月,Go 团队发布了:

  • 版本 Go 1.25.4,基于 Go 1.25 系列的小版本修复。(go.dev)
  • 版本 Go 1.24.10,基于 Go 1.24 系列的小版本修复。(go.dev)

根据官方 Release History 页面:

  • Go 1.25.4 于 2025-11-05 发布。(go.dev)
  • Go 1.24.10 于 2025-11-05 发布。(go.dev)

两个版本均为 小版本(patch)修复,目的在于解决已知缺陷、提升稳定性、安全性,而不是新增功能。(go.dev)

二、里程碑摘要(CherryPickApproved)

以下内容均来自 GitHub issues 所有修复项状态均为 "已关闭(已完成)",关闭操作由 gopherbot 执行。

Go 1.25.4

1、pem/encoding:格式错误的行结尾可能导致程序崩溃

  • 关闭时间:2025 年 10 月 30 日
  • 说明:该修复针对 pem 编码模块,解决了当处理的文件或数据中存在格式不正确的行结尾(如换行符、回车符格式异常)时,可能引发程序突然崩溃(panic)的问题

2、cmd/compile:any (func (){})==any (func (){}) 语句未按预期触发程序崩溃

  • 关闭时间:2025 年 10 月 30 日
  • 说明:在 Go 语言编译器层面,对于 "any (func (){})==any (func (){})" 这种比较两个匿名函数包装为 any 类型后是否相等的语句,原本按照设计应触发程序崩溃,但此前版本未实现该逻辑,此修复纠正了这一问题

3、os:在 Windows 系统中,RemoveAll 函数删除包含只读文件的目录时,出现 "unlinkat ... 访问被拒绝" 错误

  • 关闭时间:2025 年 10 月 29 日
  • 说明:针对 Windows 操作系统下 os 模块的 RemoveAll 函数,解决了其在删除包含只读属性文件的目录时,会因权限问题抛出 "unlinkat ... 访问被拒绝" 错误,导致目录无法正常删除的问题

4、 encoding/pem:解码包含前置无用数据的块时出现功能退化问题

  • 关闭时间:2025 年 10 月 25 日
  • 说明:在 encoding/pem 模块解码 PEM 数据块过程中,当数据块前存在无关的前置无用数据(如多余字符、空白内容等)时,模块出现了解码功能退化(如解码失败、结果异常)的情况,此修复解决了该问题

5、net/url:方括号中的 IPv4 映射 IPv6 地址应被视为有效地址

  • 关闭时间:2025 年 10 月 18 日
  • 说明:在 net/url 模块处理 URL 地址时,对于 "IPv4 映射 IPv6 地址"(即通过特定格式将 IPv4 地址嵌入 IPv6 地址中),当该地址包裹在方括号内时,此前版本未将其识别为有效地址,此修复修正了这一判定逻辑,使这类地址能被正常识别

6/crypto/internal/fips140/subtle:Go 1.25 版本中,subtle.xorBytes 函数在 MIPS 架构上出现程序崩溃

  • 关闭时间:2025 年 10 月 29 日
  • 说明:在 Go 1.25 版本的 crypto/internal/fips140/subtle 内部模块中,subtle.xorBytes 函数在 MIPS 架构的设备或环境上运行时,会出现程序崩溃的情况,此修复解决了该架构下的兼容性问题

7、runtime:在 linux/arm64 架构上通过 QEMU 运行 linux/amd64 架构的编译任务时,构建失败

  • 关闭时间:2025 年 10 月 28 日
  • 说明:在 Go 运行时(runtime)层面,当在 linux/arm64 架构的系统中,通过 QEMU(一种虚拟机 / 模拟器工具)模拟运行 linux/amd64 架构的 Go 程序编译任务时,会出现构建过程失败的问题,此修复解决了该跨架构模拟编译的问题

8、cmd/link:处理复杂泛型内联时,链接器出现程序崩溃及重定位错误

  • 关闭时间:2025 年 10 月 28 日
  • 说明:在 Go 的链接器(cmd/link)处理包含复杂泛型内联(即将泛型函数的代码嵌入调用处)的程序时,链接器会出现程序崩溃,同时还会产生重定位错误(程序内存地址分配相关错误),此修复解决了这些链接阶段的问题

Go 1.24.10

1、pem/encoding:格式错误的行结尾可能导致程序崩溃

  • 关闭时间:2025 年 10 月 30 日
  • 说明:该修复针对 pem 编码模块,解决了当处理的文件或数据中存在格式不正确的行结尾(例如换行符、回车符格式异常)时,可能引发程序突然崩溃(panic)的问题,此修复是从更高版本回溯到 1.24 版本的。

2、encoding/pem:解码包含前置无用数据的块时出现功能退化问题

  • 关闭时间:2025 年 10 月 25 日
  • 说明:在 encoding/pem 模块解码 PEM 数据块的过程中,当数据块前存在无关的前置无用数据(如多余字符、空白内容等)时,模块出现了解码功能退化(比如解码失败、结果异常)的情况,此修复解决了该问题,且是从其他版本回溯至 1.24 版本的。

3、net/url:方括号中的 IPv4 映射 IPv6 地址应被视为有效地址

  • 关闭时间:2025 年 10 月 18 日
  • 说明:在 net/url 模块处理 URL 地址时,对于 "IPv4 映射 IPv6 地址"(即通过特定格式将 IPv4 地址嵌入到 IPv6 地址中形成的地址),当该地址包裹在方括号内时,此前的 1.24 版本未将其识别为有效地址,此修复修正了这一地址有效性判定逻辑,使这类地址能够被正常识别,且该修复是从更高版本回溯到 1.24 版本的。

三、升级选择

  • 如果在使用 Go.1.25 系列的,强烈建议尽快升级至1.25.4,该版本对编译器、运行时、标准库等多个模块进行了修复,使用该版本可以提高项目的稳定性,避免出现潜在 painc 和多平台兼容性的问题。
  • 如果在使用 Go.1.24 系列的,仍然建议升级只至 1.24.10,以提高稳定性。
  • 对一跨平台、异构硬件运行的项目,更应优先升级,以避免跨平台相关的已知问题。

四、升级建议

1、 升级方式

  • 【推荐】通过 Go 官方二进制或源码包的方式进行编译升级,参考 Release History 的版本说明(go.dev)
  • 【推荐】通过 Homebrew 安装源码包的方式进行编译升级(macos)

2、注意事项

  • 升级后注意观察是否有新问题产生
  • 建议升级前执行完整的回归测试
相关推荐
uzong16 小时前
后端系统设计文档模板
后端
幽络源小助理16 小时前
SpringBoot+Vue车票管理系统源码下载 – 幽络源免费项目实战代码
vue.js·spring boot·后端
uzong17 小时前
软件架构指南 Software Architecture Guide
后端
又是忙碌的一天17 小时前
SpringBoot 创建及登录、拦截器
java·spring boot·后端
勇哥java实战分享18 小时前
短信平台 Pro 版本 ,比开源版本更强大
后端
学历真的很重要18 小时前
LangChain V1.0 Context Engineering(上下文工程)详细指南
人工智能·后端·学习·语言模型·面试·职场和发展·langchain
计算机毕设VX:Fegn089518 小时前
计算机毕业设计|基于springboot + vue二手家电管理系统(源码+数据库+文档)
vue.js·spring boot·后端·课程设计
上进小菜猪18 小时前
基于 YOLOv8 的智能杂草检测识别实战 [目标检测完整源码]
后端
韩师傅19 小时前
前端开发消亡史:AI也无法掩盖没有设计创造力的真相
前端·人工智能·后端
栈与堆19 小时前
LeetCode-1-两数之和
java·数据结构·后端·python·算法·leetcode·rust