阴晦 (@y1nhui)一次结构体复用导致的bug 中发帖

序言
这是一篇去年就写好了的博客。因为感觉很有就复杂到我们这里
如果各位佬觉得还算可以,欢迎加友链 :tieba_024:
前文
先看一行代码
ws.Route(ws.Get("xxx")).To(handler.xx).Filter(handler.BodyFilter(&param.Crate{}))
咋一看似乎没用问题,为该路由增加校验规则,校验的类型是 param.Crate{}。
至于 BodyFilter 函数内部是什么样的,先不谈。先谈本次遇到的问题
环境,BUG与定位
环境
环境是运行在k8s集群内的一个webserver pod。
集群内的流量管理是基于 istio做的。
BUG表现
测试对环境做破坏性测试的时候,为Create API 传递了一些不合法的值,成功被过滤拦截,并且返回报错。
但是之后测试发现了一个问题,正常的Create请求也被拦截,一并...