Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4210264

RC1 assert in handles.cpp, 25 with runThese and DeoptimizeALot

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P1 P1
    • 1.0
    • 1.0
    • hotspot
    • rc1
    • x86
    • windows_nt
    • Not verified

      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

            cvicksunw Christopher Vick (Inactive)
            mgharahgsunw Mohammad Gharahgouzloo (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: