文章讲述了一次线上问题排查的过程,最终定位到代码存在并发锁,排查日志及业务代码后发现是初始化ProtoStuffSerializer这个类时失败,原因是存在jar包冲突和死锁。最终发现是类加载的问题,多个线程并发调用触发了这个类的多次初始化,只能让一个线程真正执行clinit方法,其他线程都必须等待。同时,文章也提醒大家要注意类初始化代码里产生循环依赖,以及jdk8的defalut特性也要谨慎。
完成下面两步后,将自动完成登录并继续当前操作。