Other |
---|
1.0 rc1Fixed |
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
run the attached batch file. The crash is reproducible - takes 5-10 minutes to reach failure. With the following .hotspot_compiler file I have not been able to reproduce it: exclude EDU/oswego/cs/dl/util/concurrent/Task coInvoke More information is shown below. The basic problem is that an oop has been trashed when the vframearray is being filled. This happens just before a return, so the debug info is probably be wrong? Srdjan has seen the failure as well, you might want to talk to him too. /Steffen VM THREAD STACK: ================ HandleArea::allocate_handle(oopDesc * 0x00000011) line 25 + 70 bytes Handle::Handle(oopDesc * 0x00000011) line 21 + 23 bytes compiledVFrame::create_stack_value(ScopeValue * 0x00cf6e8c) line 298 compiledVFrame::locals() line 247 + 21 bytes vframeArray::fill_in_locals(int 56, compiledVFrame * 0x00cf6d98) line 39 + 11 bytes vframeArray::fill_in_vframe(int 50, compiledVFrame * 0x00cf6d98) line 199 + 19 bytes vframeArray::fill_in(JavaThread * 0x0085e3f8, int 6, GrowableArray<compiledVFrame *> * 0x00cf6d24, const RegisterMap * 0x0e57fb6c) line 218 + 25 bytes vframeArray::allocate(JavaThread * 0x0085e3f8, int 6, GrowableArray<compiledVFrame *> * 0x00cf6d24, RegisterMap * 0x0e57fb6c) line 28 Deoptimization::create_vframeArray(JavaThread * 0x0085e3f8, frame {...}, const RegisterMap * 0x0e57fd88) line 209 + 30 bytes Deoptimization::deoptimize(JavaThread * 0x0085e3f8, frame {...}, const RegisterMap * 0x0e57fd88) line 231 + 35 bytes JavaThread::deoptimize_one() line 909 + 56 bytes JavaThread::deoptimize() line 925 + 8 bytes VM_DeoptimizeAll::doit() line 269 + 8 bytes VM_Operation::evaluate() line 31 VMThread::evaluate_operation(VM_Operation * 0x0ee7e288) line 436 VMThread::loop() line 526 VMThread::vm_thread_main(Monitor * 0x007d2738) line 325 _start(void * 0x00848838) line 196 + 19 bytes _threadstartex(void * 0x00848890) line 212 + 13 bytes KERNEL32! 77f04f2c() THREAD INVOKING VM OPERATION: ============================= VMThread::execute(VM_Operation * 0x0ee7e288) line 622 InterfaceSupport::deoptimizeAll() line 140 + 9 bytes VMEntryWrapper::~VMEntryWrapper() line 175 OptoRuntime::resolve_opt_virtual_call_C(JavaThread * 0x0085e3f8) line 716 + 31 bytes TRACE OF FRAMES (#6 IS BEING DEOPTIMIZED): ========================================== 1. C frame (sp=0xee7e2f4, fp=0, pc=0xdc1123) RuntimeStub: _resolve_opt_virtual_call_Java 2. Deoptimized frame (sp=0xee7e31c, fp=0, pc=0xdc25e0) DeoptimizationBlob 3. Deoptimized frame (sp=0xee7e33c, fp=0, pc=0xdc25e0) DeoptimizationBlob 4. Deoptimized frame (sp=0xee7e354, fp=0, pc=0xdc25e0) DeoptimizationBlob 5. Deoptimized frame (sp=0xee7e3c4, fp=0, pc=0xdc25e0) DeoptimizationBlob 6. Compiled frame (sp=0xee7e3e4, fp=0, pc=0xdffede) nmethod:{method} 'coInvoke' '(LEDU/oswego/cs/dl/util/concurrent/Task;LEDU/o swego/cs/dl/util/concurrent/Task;)V' in 'EDU/oswego/cs/dl/util/concurrent/Task' 7. Compiled frame (sp=0xee7e3fc, fp=0, pc=0xdec57a) nmethod:{method} 'run' '()V' in 'Fib' STACK DUMP: =========== 0EE7E3C8 084202D8 0EE7E3CC 00000000 0EE7E3D0 084202E8 0EE7E3D4 00000010 0EE7E3D8 084202E8 0EE7E3DC 00000010 0EE7E3E0 00DFFEDE 0EE7E3E4 00000011 <<<<< trashed oop (value_addr in compiledVFrame::create_stack_value) 0EE7E3E8 084DA088 0EE7E3EC 084202D8 0EE7E3F0 00000010 0EE7E3F4 0EE7E40C 0EE7E3F8 00DEC57A 0EE7E3FC 08420000 0EE7E400 084202D8 0EE7E404 00000010 0EE7E408 00000011 0EE7E40C 0EE7E420 0EE7E410 0810409C 0EE7E414 00000006 0EE7E418 00000008 0EE7E41C 0EE7E454 0EE7E420 0EE7E45C 0EE7E424 0822EF22 0EE7E428 08420000 0EE7E42C 00000000 0EE7E430 00000010 0EE7E434 0854DB90 0EE7E438 00000010 0EE7E43C 00000012 0EE7E440 0085E3F8 0EE7E444 082B4048 0EE7E448 00DEB285 0EE7E44C 08420000 0EE7E450 00C94E10 0EE7E454 00000010 0EE7E458 0854DB90 0EE7E45C 00000010 0EE7E460 00DC1123 0EE7E464 00DEAB09 0EE7E468 00DEABB9 0EE7E46C 084A00C0 0EE7E470 084A00C0 0EE7E474 00000000 0EE7E478 08420000 0EE7E47C 0000000F 0EE7E480 0085E3F8 0EE7E484 084A00C0 0EE7E488 00DFFEDE 0EE7E48C 08420000 0EE7E490 084DA088 0EE7E494 084A00C0 0EE7E498 0085E3F8 0EE7E49C 0EE7E4F8 0EE7E4A0 00DEC57A 0EE7E4A4 084A00B0 0EE7E4A8 084A00C0 0EE7E4AC 00000012 0EE7E4B0 00000013 0EE7E4B4 0EE7E500 0EE7E4B8 08192C8C 0EE7E4BC 0085E3F8 0EE7E4C0 0C43D098 0EE7E4C4 0C43D040 0EE7E4C8 00000001 0EE7E4CC 008577CC 0EE7E4D0 082B5D80 0EE7E4D4 0EE7E4D4 0EE7E4D8 0000000F 0EE7E4DC 0854DB90 0EE7E4E0 0000000F 0EE7E4E4 00000014 0EE7E4E8 082B4048 0EE7E4EC 0085E8F8 0EE7E4F0 00DEB285 0EE7E4F4 0849FFD8 0EE7E4F8 082B5BD0 0EE7E4FC 0000000F NMETHOD BEING DEOPTIMIZED: ========================== Compiled {method} 'coInvoke' '(LEDU/oswego/cs/dl/util/concurrent/Task;LEDU/osweg o/cs/dl/util/concurrent/Task;)V' in 'EDU/oswego/cs/dl/util/concurrent/Task'[2,2] ((nmethod*)0xdffe10) ((nmethod*)0xdffe10) for method 0xc4e0490 { in_use }: main code [0xdffec0..0xdffef9] = 57 exception code [0xdffef9..0xdffefe] = 5 stub code [0xdffefe..0xdfff18] = 26 relocation [0xdffe94..0xdffeb4] = 32 oops [0xdfff64..0xdfff74] = 16 scopes data [0xdfff18..0xdfff30] = 24 scopes pcs [0xdfff30..0xdfff40] = 16 handler table [0xdfff40..0xdfff60] = 32 nul chk table [0xdfff60..0xdfff64] = 4 total size = 356 Decoding CodeBlob 0xdffe10 0xdffec0: subl 20,%esp 0xdffec3: movl %ecx,8(%esp,1) 0xdffec7: movl %edx,(%esp,1) 0xdffeca: call 0xdffefe 0xdffecf: testl %eax,%eax 0xdffed1: je 0xdffeec 0xdffed3: movl %eax,%ecx 0xdffed5: movl 8(%esp,1),%edx 0xdffed9: call 0xdeab09 0xdffede: addl 20,%esp <<<<<<<<<< pc in frame being deoptimized 0xdffee1: ret 0xdffee2: nop 0xdffee3: nop 0xdffee4: movl %eax,%ecx 0xdffee6: jmp 0xdffef1 0xdffee8: movl %eax,%ecx 0xdffeea: jmp 0xdffef1 0xdffeec: movl 0xc4581e0,%ecx 0xdffef1: addl 20,%esp 0xdffef4: jmp 0xdc21e0 0xdffef9: jmp 0xdc0060 0xdffefe: movl 0xc4e0580,%eax 0xdfff03: jmp 0xe001cf 0xdfff08: movl 0x0,%eax 0xdfff0d: jmp -0x1 0xdfff12: stosl %eax,%es:(%edi) 0xdfff13: stosl %eax,%es:(%edi) 0xdfff14: stosl %eax,%es:(%edi) 0xdfff15: stosl %eax,%es:(%edi) 0xdfff16: stosl %eax,%es:(%edi) 0xdfff17: stosl %eax,%es:(%edi) NMETHOD JUST CALLED: ==================== Compiled {method} 'coInvoke' '(LEDU/oswego/cs/dl/util/concurrent/Task;LEDU/osweg o/cs/dl/util/concurrent/Task;)V' in 'EDU/oswego/cs/dl/util/concurrent/TaskRunner '[3,5] ((nmethod*)0xdea9d0) ((nmethod*)0xdea9d0) for method 0xc4f6ed8 { in_use }: main code [0xdeab00..0xdeacef] = 495 exception code [0xdeacef..0xdeacf4] = 5 stub code [0xdeacf4..0xdead70] = 124 relocation [0xdeaa54..0xdeaaf8] = 164 oops [0xdeb020..0xdeb0c4] = 164 scopes data [0xdead70..0xdeaedc] = 364 scopes pcs [0xdeaedc..0xdeaf4c] = 112 handler table [0xdeaf4c..0xdeb00c] = 192 nul chk table [0xdeb00c..0xdeb020] = 20 total size = 1780 Decoding CodeBlob 0xdea9d0 0xdeab00: cmpl 4(%ecx),%eax 0xdeab03: jne 0xdc0220 0xdeab09: subl 28,%esp 0xdeab0c: movl %ebp,16(%esp,1) 0xdeab10: movl %edi,12(%esp,1) 0xdeab14: movl %esi,8(%esp,1) 0xdeab18: movl %edx,(%esp,1) 0xdeab1b: movl %ecx,36(%esp,1) 0xdeab1f: movl %edx,%ebx 0xdeab21: movl %ebx,4(%esp,1) 0xdeab25: movl %ecx,%ebx 0xdeab27: movl 72(%ebx),%esi 0xdeab2a: movl 64(%ebx),%edi 0xdeab2d: movl 76(%ebx),%ebx 0xdeab30: movl 8(%edi),%ecx 0xdeab33: movl %ecx,%ebp 0xdeab35: decl %ebp 0xdeab36: andl %ebp,%ebx 0xdeab38: addl %ecx,%ebx 0xdeab3a: cmpl %ebx,%esi 0xdeab3c: jnl 0xdeab53 0xdeab3e: andl %esi,%ebp 0xdeab40: cmpl %ecx,%ebp 0xdeab42: jae 0xdeacd0 0xdeab48: movl 12(%edi,%ebp,4),%ebx 0xdeab4c: movl %edx,%ecx 0xdeab4e: movl %ecx,8(%ebx) 0xdeab51: jmp 0xdeab77 0xdeab53: movl 36(%esp,1),%ecx 0xdeab57: call 0xdc10e0 0xdeab5c: movl 32(%esp,1),%ecx 0xdeab60: call 0xdc0e60 0xdeab65: movl 36(%esp,1),%ecx 0xdeab69: movl 4(%esp,1),%edx 0xdeab6d: call 0xdc10e0 0xdeab72: jmp 0xdeac7c 0xdeab77: shrl 0x9,%ebx 0xdeab7a: movb 0x0,239132416(%ebx) 0xdeab81: movl %esi,%ebx 0xdeab83: incl %ebx 0xdeab84: movl 36(%esp,1),%ecx 0xdeab88: movl %ebx,72(%ecx) 0xdeab8b: movl 32(%esp,1),%ebx 0xdeab8f: testl %ebx,%ebx 0xdeab91: je 0xdeacc1 0xdeab97: movl 32(%esp,1),%ecx 0xdeab9b: call 0xdead12 0xdeaba0: testl %eax,%eax 0xdeaba2: jne 0xdeabc2 0xdeaba4: movl 36(%esp,1),%ebx 0xdeaba8: incl 92(%ebx) 0xdeabab: movl 32(%esp,1),%ecx 0xdeabaf: movl 0xc4effd0,%eax 0xdeabb4: call 0xdec2c0 0xdeabb9: movl 32(%esp,1),%ecx 0xdeabbd: call 0xe000e9 0xdeabc2: movl 4(%esp,1),%ebx 0xdeabc6: testl %ebx,%ebx 0xdeabc8: je 0xdeacc1 0xdeabce: movl %ebx,%ecx 0xdeabd0: call 0xdead26 0xdeabd5: testl %eax,%eax 0xdeabd7: jne 0xdeac7c 0xdeabdd: nop 0xdeabde: nop 0xdeabdf: nop 0xdeabe0: movl 36(%esp,1),%ebx 0xdeabe4: movl 72(%ebx),%ebx 0xdeabe7: decl %ebx 0xdeabe8: movl %ebx,32(%esp,1) <<<<<<<< likely trashing of argument 0xdeabec: movl 36(%esp,1),%ebx 0xdeabf0: movl 32(%esp,1),%ecx 0xdeabf4: movl %ecx,72(%ebx) 0xdeabf7: movl 76(%ebx),%ebx 0xdeabfa: cmpl 32(%esp,1),%ebx 0xdeabfe: jl 0xdeac11 0xdeac00: movl 36(%esp,1),%ecx 0xdeac04: movl 32(%esp,1),%edx 0xdeac08: call 0xdc10e0 0xdeac0d: movl %eax,%esi 0xdeac0f: jmp 0xdeac38 0xdeac11: movl 36(%esp,1),%ebx 0xdeac15: movl 64(%ebx),%esi 0xdeac18: movl 8(%esi),%ebx 0xdeac1b: movl %ebx,%edi 0xdeac1d: decl %edi 0xdeac1e: andl 32(%esp,1),%edi 0xdeac22: cmpl %ebx,%edi 0xdeac24: jae 0xdeac9a 0xdeac2a: movl 12(%esi,%edi,4),%ebx 0xdeac2e: movl 8(%ebx),%esi 0xdeac31: movl 0x0,8(%ebx) 0xdeac38: testl %esi,%esi 0xdeac3a: je 0xdeacc1 0xdeac40: movl %esi,%ecx 0xdeac42: call 0xdead3a 0xdeac47: testl %eax,%eax 0xdeac49: jne 0xdeac6b 0xdeac4b: movl 36(%esp,1),%ebx 0xdeac4f: incl 92(%ebx) 0xdeac52: movl %esi,%ecx 0xdeac54: movl 0xc4effd0,%eax 0xdeac59: call 0xdec2c0 0xdeac5e: movl %esi,%ecx 0xdeac60: call 0xdead44 0xdeac65: cmpl 4(%esp,1),%esi 0xdeac69: je 0xdeac7c 0xdeac6b: movl 4(%esp,1),%ecx 0xdeac6f: call 0xdc10e0 0xdeac74: testl %eax,%eax 0xdeac76: je 0xdeabe0 0xdeac7c: movl 8(%esp,1),%esi 0xdeac80: movl 12(%esp,1),%edi 0xdeac84: movl 16(%esp,1),%ebp 0xdeac88: addl 28,%esp 0xdeac8b: ret 0xdeac8c: nop 0xdeac8d: nop 0xdeac8e: movl %eax,%ecx 0xdeac90: jmp 0xdeacdb 0xdeac92: movl %eax,%ecx 0xdeac94: jmp 0xdeacdb 0xdeac96: movl %eax,%ecx 0xdeac98: jmp 0xdeacdb 0xdeac9a: movl 0xfffffffb,%ecx 0xdeac9f: call 0xdc2760 0xdeaca4: int3 0xdeaca5: movl %eax,%ecx 0xdeaca7: jmp 0xdeacdb 0xdeaca9: movl %eax,%ecx 0xdeacab: jmp 0xdeacdb 0xdeacad: movl %eax,%ecx 0xdeacaf: jmp 0xdeacdb 0xdeacb1: movl %eax,%ecx 0xdeacb3: jmp 0xdeacdb 0xdeacb5: movl %eax,%ecx 0xdeacb7: jmp 0xdeacdb 0xdeacb9: movl %eax,%ecx 0xdeacbb: jmp 0xdeacdb 0xdeacbd: movl %eax,%ecx 0xdeacbf: jmp 0xdeacdb 0xdeacc1: movl 0xc4581e0,%ecx 0xdeacc6: jmp 0xdeacdb 0xdeacc8: movl %eax,%ecx 0xdeacca: jmp 0xdeacdb 0xdeaccc: movl %eax,%ecx 0xdeacce: jmp 0xdeacdb 0xdeacd0: movl 0xfffffffb,%ecx 0xdeacd5: call 0xdc2760 0xdeacda: int3 0xdeacdb: movl 8(%esp,1),%esi 0xdeacdf: movl 12(%esp,1),%edi 0xdeace3: movl 16(%esp,1),%ebp 0xdeace7: addl 28,%esp 0xdeacea: jmp 0xdc21e0 0xdeacef: jmp 0xdc0060 0xdeacf4: movl 0x0,%eax 0xdeacf9: jmp -0x1 0xdeacfe: movl 0x0,%eax 0xdead03: jmp -0x1 0xdead08: movl 0x0,%eax 0xdead0d: jmp -0x1 0xdead12: movl 0xc4e06e8,%eax 0xdead17: jmp 0xdeb24f 0xdead1c: movl 0xc4e0820,%eax 0xdead21: jmp 0xdffa8f 0xdead26: movl 0xc4e06e8,%eax 0xdead2b: jmp 0xdeb24f 0xdead30: movl 0x0,%eax 0xdead35: jmp -0x1 0xdead3a: movl 0xc4e06e8,%eax 0xdead3f: jmp 0xdeb24f 0xdead44: movl 0xc4e0820,%eax 0xdead49: jmp 0xdffa8f 0xdead4e: movl 0x0,%eax 0xdead53: jmp -0x1 0xdead58: stosl %eax,%es:(%edi) 0xdead59: stosl %eax,%es:(%edi) 0xdead5a: stosl %eax,%es:(%edi) 0xdead5b: stosl %eax,%es:(%edi) 0xdead5c: stosl %eax,%es:(%edi) 0xdead5d: stosl %eax,%es:(%edi) 0xdead5e: stosl %eax,%es:(%edi) 0xdead5f: stosl %eax,%es:(%edi) 0xdead60: stosl %eax,%es:(%edi) 0xdead61: stosl %eax,%es:(%edi) 0xdead62: stosl %eax,%es:(%edi) 0xdead63: stosl %eax,%es:(%edi) 0xdead64: stosl %eax,%es:(%edi) 0xdead65: stosl %eax,%es:(%edi) 0xdead66: stosl %eax,%es:(%edi) 0xdead67: stosl %eax,%es:(%edi) 0xdead68: stosl %eax,%es:(%edi) 0xdead69: stosl %eax,%es:(%edi) 0xdead6a: stosl %eax,%es:(%edi) 0xdead6b: stosl %eax,%es:(%edi) 0xdead6c: stosl %eax,%es:(%edi) 0xdead6d: stosl %eax,%es:(%edi) 0xdead6e: stosl %eax,%es:(%edi) 0xdead6f: stosl %eax,%es:(%edi) steffen.grarup@eng 1999-02-10
|