异常堆栈数据丢失问题

本文探讨了生产环境中遇到的异常堆栈信息丢失问题,分析了JVM对堆栈优化导致的现象,并提供了详细的解决方案,包括如何定位最早的错误日志及调整JVM参数避免预分配异常不提供堆栈跟踪。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生产环境出现异常堆栈丢失,但本地直接看又没有丢失情况

目前遇到的场景是由于jvm对堆栈做了优化,在遇到大量重复错,忽略全部打印

参考java更新日志

The compiler in the server VM now provides correct stack backtraces for all "cold" built-in exceptions. For performance purposes, when such an exception is thrown a few times, the method may be recompiled. After recompilation, the compiler may choose a faster tactic using preallocated exceptions that do not provide a stack trace. To disable completely the use of preallocated exceptions, use this new flag: -XX:-OmitStackTraceInFastThrow

https://www.oracle.com/technetwork/java/javase/relnotes-139183.html

遇到类似问题处理方法:

1,找到最早的错误日志,一般有几千个错误到几万错误会打印完整日志

这个jvm原生不支持动态配置,据说有些厂自己支持了,目前没有考虑动态支持和禁用这块配置,但不影响问题排查

转载于:https://my.oschina.net/yugj/blog/2996168

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值