Rust不修改源码间歇性编译失败(SIGSEGV报错)是否为工具链已知问题?
你提到的cargo 1.52.0-nightly (90691f2bf 2021-03-16)、rustc 1.53.0-nightly (07e0e2ec2 2021-03-24)两个版本,没有大规模报告的同类随机段错误、重试可推进编译进度的已知问题。
你遇到的现象符合内存硬件故障的典型特征:
- 错误触发随机,每次失败对应的编译 crate 不固定
- 重试操作可以继续推进编译进度(坏内存块未被再次分配到就不会触发错误)
- 错误类型为SIGSEGV段错误,没有明确的代码层面报错逻辑
你可以先通过以下操作快速验证,无需等待memtest86+ UEFI适配:
- 限制cargo并行编译线程数,执行
cargo run -j 1,单线程编译内存压力更低,若此时错误完全消失,进一步印证内存硬件问题 - 切换到稳定版工具链重新编译,执行
rustup default stable && cargo clean && cargo run,若同样出现随机段错误,可完全排除工具链版本问题 - 查看系统内核日志,执行
dmesg | grep -i memory,确认是否有内核报出的内存访问错误、ECC校验错误等硬件异常记录
内容的提问来源于stack exchange,提问作者Alexx Roche
相关产品推荐
相关产品推荐

