2009-05-13 9 views
3

負荷が変化してもインターネットアプリケーションを実行しているJVMには問題があります。この問題は往々にして起こります。ある日、3台のVMが死んでいるのが見えます。その後、1〜2週間は何もありません。私たちはまだ模様を見つけておらず、それを再現するか何も起こさなかった。また、Sunのバグデータベースの検索は役に立たなかった。ConcurrentGCThreadでJava VMがランダムにクラッシュする

推奨回避策(-XX:-CMSPermGenPrecleaningEnabled -XX:-CMSConcurrentMTEnabled)をhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6354939から に変更しました。それはそれを引き起こすスレッドを変えるように見えるか、少なくともそれを信じさせるように思える。

また、1.6.0_13へのアップグレードは役に立たず、Su​​nへのバグリクエストは返されませんでした。

私の質問は誰でも見たことがありますか、何を探しているのでしょうか?これはOSライブラリに関連していますか?

編集:OSは、Linux、openSUSEのAMDのCPU上で実行されている(Linuxの2.6.18.8-0.1-DW#3 SMP木3月15日1時21分48秒GMT 2007 x86_64のx86_64でのx86_64のGNU/Linuxの)である

# 
# An unexpected error has been detected by Java Runtime Environment: 
# 
# SIGSEGV (0xb) at pc=0x062c75f5, pid=6667, tid=1090374560 
# 
# Java VM: Java HotSpot(TM) Server VM (11.2-b01 mixed mode linux-x86) 
# Problematic frame: 
# V [libjvm.so+0x2c75f5] 
# 
# If you would like to submit a bug report, please visit: 
# http://java.sun.com/webapps/bugreport/crash.jsp 
# 

--------------- T H R E A D --------------- 

Current thread (0x081ddc00): ConcurrentGCThread [stack: 0x40f5c000,0x40fdd000] [id=6679] 

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x0000000c 

Registers: 
EAX=0x00000000, EBX=0x00000008, ECX=0x0bf5e510, EDX=0x42d6dcb0 
ESP=0x40fdc150, EBP=0x40fdc168, ESI=0x40fdc200, EDI=0xa19e9640 
EIP=0x062c75f5, CR2=0x0000000c, EFLAGS=0x00210206 

Top of Stack: (sp=0x40fdc150) 
0x40fdc150: 40fdc200 71c70000 0815a748 0815a704 
0x40fdc160: a19e9640 40fdc200 40fdc198 062c74cb 
0x40fdc170: 40fdc200 a19e9640 0bf5e510 0bf5e510 
0x40fdc180: 080ea6f0 40fdc200 00000010 a19e9640 
0x40fdc190: ad38a000 40fdc200 40fdc1c8 0629efaa 
0x40fdc1a0: 40fdc200 a19e9640 00000100 00000100 
0x40fdc1b0: 0815ab00 40fdc200 40fdc2b8 40fdc200 
0x40fdc1c0: 080ea5f0 0815a638 40fdc2b8 062c2905 

Instructions: (pc=0x062c75f5) 
0x062c75e5: 53 83 ec 0c 8b 7d 0c 8b 75 08 8b 47 04 8d 58 08 
0x062c75f5: 8b 53 04 89 d1 c1 f9 02 85 d2 7e 6f b8 04 00 00 

Stack: [0x40f5c000,0x40fdd000], sp=0x40fdc150, free space=512k 
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) 
V [libjvm.so+0x2c75f5] 
V [libjvm.so+0x2c74cb] 
V [libjvm.so+0x29efaa] 
V [libjvm.so+0x2c2905] 
V [libjvm.so+0x2bb461] 
V [libjvm.so+0x2c9ef5] 
V [libjvm.so+0x506929] 
C [libpthread.so.0+0x52ab] 
+0

これは? –

+0

はserverfault.comに属していますか? – dfa

+0

serverfault.comはまだプライベートベータです...だから、私は将来的にはうまくいくかもしれません。 – ReneS

答えて

0

ここ.. 6u13ので、GCのクラッシュに関連するいくつかのバグフィックスが行われてきたが、いくつかある:

  • 6897143 - ParallelGCを使用してHeapInspection時のストレステストがクラッシュ。
  • 6845368 - 1.6.0_14の初期アクセスにより1.6.0_10で見られる複数のJVMがクラッシュ - - GC
  • 6806226におそらく関連 - 可変長配列コードで符号付き整数オーバーフロー大きなオブジェクトは、クラッシュまたは予期しない例外
  • 6840775を引き起こしますJVMのクラッシュを引き起こす

少なくともJava 6 Update 18(u18)を使用することをお勧めします。

1

私は非常によく似たJVMダンプを持っていました。 原因は、Solarisゾーンでメモリ/スワップ領域が不足していたためです。 は、エラーがより明確にした(Javaオプション-d64とIE)64ビットモードで同じプログラムを実行:

何OS

A fatal error has been detected by the Java Runtime Environment:

java.lang.OutOfMemoryError: requested 395856 bytes for Chunk::new. Out of swap space?

Internal Error (allocation.cpp:272), pid=10847, tid=32 Error: Chunk::new

JRE version: 6.0_23-b05 Java VM: Java HotSpot(TM) 64-Bit Server VM (19.0-b09 mixed mode solaris-sparc compressed oops) If you would like to submit a bug report, please visit: http://java.sun.com/webapps/bugreport/crash.jsp

関連する問題