【一个经典BUG】gin框架中,异步协程使用context导致取不到数据


bug的内容大致如下:

func httpHandle(c *gin.Context) {
    go func(ctx Context){
        v := ctx.Value("xxx")  // 这里取不到值,导致后续发生panic
    }(c)
}

1.发生panic是随机的;
2.问题的原因是:当协程开始使用context的时候,父级协程技术,gin框架回收了context。
context失效导致了问题。
gin框架如何回收context,还没搞明白。后续还要继续看看。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/288145.html

(0)
上一篇 2022年9月7日
下一篇 2022年9月7日

相关推荐

发表回复

登录后才能评论