首页 > 其他分享 >【一个经典BUG】gin框架中,异步协程使用context导致取不到数据

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

时间:2022-09-07 15:34:47浏览次数:86  
标签:协程 context 框架 Context gin BUG

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,还没搞明白。后续还要继续看看。

标签:协程,context,框架,Context,gin,BUG
From: https://www.cnblogs.com/ahfuzhang/p/16665617.html

相关文章

  • 【AR Engine】集成AR Engine,ARSession.update方法抛出ARFatalException
    ​【问题描述】在App中接入了AREngine,在日志监控中发现个别终端用户在程序调用ARSession.update方法时,AREngine抛出了ARFatalException。通过查看日志发现,这个问题在此......
  • linux环境配置 (redis、jdk、nginx、mysql)
    linux环境配置环境准备服务器:腾讯云服务器操作系统:centos8.0终端控制器:finalshell3.9.34redis7.0.4jdk1.8.0nginx-1.21.3mysql8.0.30redis安装创建或选......
  • Flask 学习-54.Flask-RESTX 结合 namespace 使用 logging日志
    前言Flask-RESTX通过提供每个和它自己的标准Python实例来扩展Flask的日志记录。这允许在每个命名空间的基础上分离日志记录,以允许更细粒度的细节和配置。基本示例默......
  • 22-Nginx高可用(基于Keepalived实现双机主备)
    双机主备HA其实就是高可用,现在部署的其实就是一台Nginx,但凡是单节点,都会存在宕机的可能性,所以我们需要一个备用机,来完成高可用,解决单点故障问题Keepalived......
  • 03-Nginx执行过程分析
    Nginx显示默认页面过程分析客户端在请求Nginx的时候会找到Nginx的路由表,然后查看映射也就是Nginx的配置文件#进入配置文件目录cdconf/#查看配置文件vinginx......
  • 04-Nginx进程模型解析
    Nginx进程模型解析master进程:主进程worker进程:工作进程默认是一个主进程,一个工作进程,Nginx的工作进程是可以通过配置文件进行修改的#工作进程数量worke......
  • 06-Nginx常用命令汇总
    Nginx常用命令解析命令作用./nginx启动./nginx-sstop停止(不推荐),直接停止./nginx-squit退出(推荐),不再接收新的请求,处理完当......
  • 07-Nginx日志切割-通过sh脚本手动切割日志
    Nginx日志切割现有的日志都会存在access.log文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维人员查看,所以我们可以通过把文件切割为多份不同......
  • 08-Nginx日志切割-脚本+定时任务自动切割日志
    定时任务执行脚本,解决手动问题安装依赖yuminstallcrontabs添加定时任务crontab-e输入内容*/1****/usr/local/nginx/sbin/cut_my_log.sh修改完成后......
  • 01-Nginx领域概念
    什么是NginxNginx是一个高可用的HTTP和反向代理Web服务器,同时也提供IMAP/POP3/SMTP服务主要功能反向代理通过配置文件可以实现集群和负载均衡静态资源虚拟化常见......