解决一个 Websphere 上导致 JVM 崩溃的 bug

2006-09-06 12:28

 

最近在项目中解决了一个很奇怪的 Bug.

 

项目中使用 IBM Websphere 5.0.2.7, JDK 1.3.1, 每天都有一次服务器 JVM 崩溃,非常奇怪。

同样的代码,同样的数据库数据,在开发环境下面就很好。

经过两天的调试和增加大量的 log (使用 log4j),逐步逼近问题的根源。为了防止 JVM 崩溃的时候, log4j 还有 log 放在缓冲内存中没有写到文件,还花了很多时间才搞定。

结果发现是以下代码导致,变量名我换掉了,这里只是示例:

addToList(new long[] { long1, long2, long3, long4}, contList);

这是一个数组初始化代码,编译无误,应该是符合 JDK 1.3 的语法的。执行次数在 10 次左右还没有问题,次数多了就会导致服务器 JVM 崩溃。修改成如下格式:


long[] data = new long[4];
data[0] = long1;
data[1] = long2;
data[2] = long3;
data[3] = long4;
addToList(data, contList);
		

然后问题就解决了。非常莫名其妙的问题。有趣的 bug.

 

 

欢迎转载,转载请注明出处: https://www.zheguisoft.com/staff_blogs/jacklondon_chen/2006, 及 https://blog.csdn.net/jacklondon/article/details/1184748?spm=1001.2014.3001.5501