Hasty Briefsbeta

双语

A subtle bug with Go's errgroup

9 months ago
  • #Debugging
  • #Programming
  • #Go
  • 作者在开发Kratos时遇到一个bug,该问题在代码合并前被测试用例捕获。
  • 这个问题被精简成一个100行的独立密码验证程序。
  • 密码以哈希值形式存储防止暴力破解,并通过errgroup实现并发任务以优化性能。
  • 发现一个上下文过早取消的bug,导致密码泄露检查未能执行。
  • 提出两种修复方案:在errgroup中运行HTTP检查,或避免上下文变量遮蔽。
  • 作者强调必须仔细阅读API文档,理解技术细节中的注意事项。
  • 该博文已开源,欢迎读者贡献代码或给予支持。