Gin与Mysql driver引发的服务崩溃

Gin与Mysql driver引发的服务崩溃

在 Go Web 服务中,*gin.Context 很容易被当作普通的请求参数向业务层传递。当业务层又启动异步任务,并在任务中继续使用这个对象时,请求生命周期和 goroutine 生命周期就会发生错位。高并发场景下,Gin 对象池的复用会把这个问题放大,最终触发 MySQL driver 的异常取消路径,导致进程 panic。


寒江蓑笠翁大约 17 分钟技术日志gogoginmysqldatabasecontext
2