valgrind reveal bug of openjdk during pressure test
David Holmes
David.Holmes at oracle.com
Thu Oct 14 19:35:05 PDT 2010
Feng.Da at zxelec.com said the following on 10/15/10 11:08:
> I’m doing a pressure test and find openjdk thrashed suse10 and crashed.
> The following is the valgrind report and hs_error file.
Ok I belatedly found the 7z command to access the original rar archive.
The hs_err log shows:
--------------- T H R E A D ---------------
Current thread (0x06ea4000): GCTaskThread [stack:
0x0bf9b000,0x0c01c000] [id=31719]
siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR),
si_addr=0xfffff032;;
Registers:
EAX=0x06f5c1e8, EBX=0x16840fc0, ECX=0x06f5c1e8, EDX=0xfffff032
ESP=0x00000000, EBP=0x0c01b088, ESI=0x0c01b0b0, EDI=0x00000001
EIP=0x077febc1, CR2=0xfffff032, EFLAGS=0x00200000
Top of Stack: (sp=0x00000000)
0x00000000:
[error occurred during error reporting (printing registers, top of
stack, instructions near pc), id 0xb]
Stack: [0x0bf9b000,0x0c01c000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code,
C=native code)
V [libjvm.so+0x576bc1];;
_ZN10PSScavenge26copy_and_push_safe_barrierIP7oopDescEEvP18PSPromotionManagerPT_+0x11
V [libjvm.so+0x526bfb];;
_ZN9OopMapSet6all_doEPK5framePK11RegisterMapP10OopClosurePFvPP7oopDescSA_ES7_+0x17b
V [libjvm.so+0x526a72];;
_ZN9OopMapSet7oops_doEPK5framePK11RegisterMapP10OopClosure+0x32
V [libjvm.so+0x2ea3e1];;
_ZN5frame17oops_code_blob_doEP10OopClosurePK11RegisterMap+0x31
V [libjvm.so+0x2eab1f];;
_ZN5frame16oops_do_internalEP10OopClosureP11RegisterMapb+0x7f
V [libjvm.so+0x6131aa];; _ZN10JavaThread7oops_doEP10OopClosure+0xea
V [libjvm.so+0x578d0d];; _ZN15ThreadRootsTask5do_itEP13GCTaskManagerj+0x8d
V [libjvm.so+0x30e0eb];; _ZN12GCTaskThread3runEv+0x12b
V [libjvm.so+0x531cce];; _Z10java_startP6Thread+0x14e
C [libpthread.so.0+0x52ab]
The valgrind log shows the original error as:
==31714== Thread 6:
==31714== Invalid read of size 4
==31714== at 0x77FEBC1: void
PSScavenge::copy_and_push_safe_barrier<oopDesc*>(PSPromotionManager*,
oopDesc**) (in /opt/java/jdk1.6.0_17/jre/lib/i386/server/libjvm.so)
and the secondary error during error reporting as:
==31714== Invalid read of size 4
==31714== at 0x77B1D06: os::print_hex_dump(outputStream*, unsigned
char*, unsigned char*, int) (in
/opt/java/jdk1.6.0_17/jre/lib/i386/server/libjvm.so)
==31714== by 0x77BBE35: os::print_context(outputStream*, void*) (in
/opt/java/jdk1.6.0_17/jre/lib/i386/server/libjvm.so)
==31714== by 0x78D72ED: VMError::report(outputStream*) (in
/opt/java/jdk1.6.0_17/jre/lib/i386/server/libjvm.so)
which I suspect is caused by the fact the sp = 0 (which is obviously not
be!)
What program were you running? can you reproduce the crash outside of
valgrind?
David Holmes
More information about the hotspot-dev
mailing list