iLogtail 2.0开源版发布后部分用户遇到"Illegal Instruction"错误,根本原因是程序使用了目标机器CPU不支持的指令集(AVX2)。
排查流程:
- 在老旧机器(Intel Xeon E5-2650 v2)上复现问题。
- 通过GDB调试发现程序挂在
vextracti128指令上——该指令属于AVX2指令集。 - 查看该机器的CPU flags(通过
lscpu),发现支持AVX但不支持AVX2。 - 定位到是编译SPL相关依赖(facebook velox/folly库)时使用了
-mavx2编译选项,生成了AVX2指令。 - 堆栈指向folly::SingletonHolder初始化阶段,说明问题在程序启动时就会触发。
根因:编译环境的CPU支持AVX2,编译器自动使用了高版本指令集优化,但部署环境的老旧CPU(Ivy Bridge架构)仅支持到AVX,不支持AVX2(Haswell架构才引入)。




