背景介绍: 项目是微服务的,使用docker容器,使用jenkins部署.测试环境有个公共服务一直以来都能正常发布,突然有一天不行了,经常发布失败,然后多发布几次就好了. 报错如下: 是栈溢出了,一般是新代码有死循环会出现.但是本地启动没问题并且环境上多发几次也能成功,说明没有死循环,肯定是其他原因. 分析问题: Java运行时数据区分5部分: 从报错上来看是虚拟机栈溢出. 虚拟机栈是属于线程私有的,每个线程都会有一个虚拟机栈,随线程的创建而创建,消失而消失.它由一个个的栈帧组成,线程每次调用一…