Encountering a Crash Issue Due to a Bug in GCC STL `std::async` Implementation
💡
原文英文,约900词,阅读约需3分钟。
📝
内容提要
最近发现使用新版本的opentelemetry-cpp时出现崩溃问题。崩溃位置在std::future析构的地方,由std::async创建。经分析发现是GCC STL实现的一个BUG,已通过修复PR解决。建议绕过该BUG,避免使用该功能。
🎯
关键要点
- 近期发现使用新版本的opentelemetry-cpp时偶现崩溃问题。
- 崩溃发生在std::future析构时,由std::async创建的future导致。
- 分析发现是GCC STL实现的一个BUG,已通过修复PR解决。
- 建议绕过该BUG,避免使用相关功能。
- 崩溃栈显示尝试join的线程已经为空,导致异常。
- 相关代码逻辑在收集上报指标时使用子线程执行导出。
- 问题可能与线程安全的边界条件有关,需进一步分析。
- 修复PR已推送并合入,项目组已接入修复版本。
➡️