线上的一次栈溢出问题排查 StackOverflowError
栈溢出的原因 在解决栈溢出问题之前,我们首先需要知道一般引起栈溢出的原因,主要有以下几点: 是否有递归调用,循环依赖调用 是否有大量循环或死循环 全局变量是否过多 局部变量过大,如:数组、List、Map数据过大 问题现象 我们一个很老的接口(近一年没有动过)在线上运行一段时间后报了 StackOverflowError 栈溢出,其他接口又能正常提供服务,错误日志: java.lang.StackOverflowError org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1303) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:977) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) org