The fix for a segfault that never shipped
4 months ago
- #fixed-point-arithmetic
- #debugging
- #audio-encoding
- Recall.ai每月处理数百万小时的会议音频,将不同格式统一标准化处理
- 该公司在一个古老的AAC编码器中遭遇罕见段错误,导致每3600万次会议机器人实例中约有1次数据丢失
- 问题根源是VisualOn AAC编码器中存在定点数学运算缺陷,该补丁虽在十多年前就已开发但从未向下游分发
- 为诊断问题,Recall.ai开发了名为'垃圾车'的Rust二进制工具,用于从临时EC2实例抓取核心转储并上传至S3
- 分析显示崩溃发生在`voAACEnc_pow2_xy`函数中,因定点算术错误导致`avgEn < minEn`而引发越界访问
- 团队通过强制`avgEn >= minEn`实现临时修复,最终采用现代AAC编码器替代陈旧版本以彻底杜绝此类崩溃