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已推送并合入,项目组已接入修复版本。
🏷️

标签

➡️

继续阅读