昨天遇到一个问题,公司的一个军方项目组在使用我们的服务器
在部署应用时频繁的重启,卸载应用时也存在这种现象
而服务器的日志仅捕获了少许信息,详细的关于服务器本身的没有记录,因此怀疑是JVM发生了致命错误使得服务器不及写日志就退出了,于是在服务器bin目录下查找,果然发现了以 "hs_err_pid" 开头的日志名,报的异常大致如下:
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c938fea, pid=3028, tid=2368
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_12-b04 mixed mode)
# Problematic frame:
# C [ntdll.dll+0x18fea]
...
Heap
def new generation total 4608K, used 3054K [0x027b0000, 0x02ca0000, 0x07670000)
eden space 4160K, 68% used [0x027b0000, 0x02a7bf50, 0x02bc0000)
from space 448K, 42% used [0x02bc0000, 0x02befc38, 0x02c30000)
to space 448K, 0% used [0x02c30000, 0x02c30000, 0x02ca0000)
tenured generation total 58136K, used 38983K [0x07670000, 0x0af36000, 0x427b0000)
the space 58136K, 67% used [0x07670000, 0x09c81d28, 0x09c81e00, 0x0af36000)
compacting perm gen total 63232K, used 63228K [0x427b0000, 0x46570000, 0x527b0000)
the space 63232K, 99% used [0x427b0000, 0x4656f3c8, 0x4656f400, 0x46570000)
No shared spaces configured.
起初觉得应该是内存溢出导致的, 于是增加内存参数,但问题依旧,而由于军方项目组保密设施比较严格, 没有网络和电话
所以查找问题也比较被动,而且此类问题第一次遇到所以只能怀疑程序本身有问题,是不是操作数据库后没有及时关闭等
但项目组成员反馈,项目组4台机器中两台正常,两台存在此类现象,而且机器硬件配置相同,安装的软件版本也相同。
由于没有好的解决办法,只好回来之后上网搜索相关资料。经google一下后发现,此问题很常见,但都没有好的解决办法
于是按照各网友给出的建议挨个尝试,但都没效果
后来找到一篇文章里面解释了异常的一些信息才有了些许线索。
异常中的
# C [ntdll.dll+0x18fea]这里的C表示,jvm是在调用本地方法的时候挂了
于是怀疑是不是程序中调用了本地方法,但项目组说就是一个普通的web应用并没有使用任何的本地方法
但异常提示如此所以怀疑是某些软件和jdk冲突,但既然是jvm调用本地方法时出错,就很可能是和杀毒软件有冲突
后对比发现,能正常使用的安装的是卡巴,而不能正常使用的安装的都是nod32.
于是卸载nod32后问题解决。