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

SEGV in server compiler thread when CodeCache is full

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 6
    • 5.0, 6
    • hotspot
    • None
    • b44
    • sparc
    • solaris, solaris_9

      Last night I got a SEGV running "runthese" in the server
      compiler thread (see the <---- line below),
      because nm is null from a "code cache is full" condition.

      From looking through the SCCS history, I'm guessing that
      the change to add DTRACE support introduced the bug.

       Hope this enough information to fix this (if you're the
       right person to mention this to.) If not, I'll file a bug.
       
      Thanks,
      -ross
       
       ciEnv.cpp
       
       void ciEnv::register_method(ciMethod* target,
       ...
         nmethod* nm = NULL;
       ...
           if (nm == NULL) {
             // The CodeCache is full. Print out warning and disable compilation.
       ...
         // JVMTI/JVMPI -- compiled method notification (must be done outside lock)
         post_compiled_method_load_event(nm);
       }
       
       // ------------------------------------------------------------------
       // ciEnv::post_compiled_method_load_event
       // new method for install_code() path
       // Transfer information from compilation to jvmpi
       // NOTE: lineno_table must be from long-term storage
       void ciEnv::post_compiled_method_load_event(nmethod *nm) {
         methodOop method = nm->method(); <---------------------- SEGV here
         HS_DTRACE_PROBE8(hotspot, compiled__method__load,
       ....
       }
       
       hs_err log ===================
       
       #
       # An unexpected error has been detected by HotSpot Virtual Machine:
       #
       # SIGSEGV (0xb) at pc=0xfd6fc904, pid=8596, tid=12
       #
       # Java VM: Java HotSpot(TM) Server VM (1.6.0-internal-debug compiled mode)
       # Problematic frame:
       # V [libjvm.so+0x2fc904]
       #
       
       --------------- T H R E A D ---------------
       
       Current thread (0x001b65c0): JavaThread "CompilerThread0" daemon
       [_thread_in_vm, id=12]
       
       siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x00000030
       
       Registers:
        O0=0xfeaf2e1a O1=0x0002e210 O2=0x00030000 O3=0xfdfceffc
        O4=0x00df87e0 O5=0x01722000 O6=0xc327ecf0 O7=0xfd6fc8f8
        G1=0xc3800000 G2=0x00000ff3 G3=0x000c7bc0 G4=0xfeee6550
        G5=0xfee1e948 G6=0x00000000 G7=0xff351600 Y=0x00000004
        PC=0xfd6fc904 nPC=0xfd6fc908
       
       
       Top of Stack: (sp=0xc327ecf0)
       0xc327ecf0: feeca0bc 0002ea24 0002e800 00000001
       0xc327ed00: ff31a5f4 0002ddbc 00000000 00000000
       0xc327ed10: c327f970 00000000 fef46700 0004fa30
       0xc327ed20: feaf2c43 0002b400 c327ed90 fd6fc730
       0xc327ed30: 00032e60 00014610 fee1e948 feef6d74
       0xc327ed40: c327f74c c327f760 fee1e948 0002a400
       0xc327ed50: fe51fc9a 0002a6e8 0002c800 00034200
       0xc327ed60: 0000a228 0000a000 c327ed90 fd6fc5ec
       
       Instructions: (pc=0xfd6fc904)
       0xfd6fc8f4: 9d e3 bf 60 40 00 00 02 1b 00 5c 88 3b 00 00 ad
       0xfd6fc904: f6 06 60 30 9a 03 60 50 b4 07 63 d8 b8 03 40 0f
       
       Stack: [0xc3200000,0xc3280000), sp=0xc327ecf0, free space=507k
       Native frames: (J=compiled Java code, j=interpreted, Vv=VM code,
       C=native code)
       V [libjvm.so+0x2fc904]
       V [libjvm.so+0x2fc738]
       V [libjvm.so+0x411e0c]
       V [libjvm.so+0x2ac8f0]
       V [libjvm.so+0x4285cc]
       V [libjvm.so+0x425a3c]
       V [libjvm.so+0xe10b18]
       V [libjvm.so+0xc264f4]
       
       
       Current CompileTask:
       opto:118213 b jvs.expresso.func.scalar.static_assign_x.test()V (6307
       bytes)
       
       0xfd6fc8f4: post_compiled_method_load_event : save %sp, -160, %sp
       0xfd6fc8f8: post_compiled_method_load_event+0x0004: call
       post_compiled_method_load_event+0xc ! 0xfd6fc900
       0xfd6fc8fc: post_compiled_method_load_event+0x0008: sethi
       %hi(0x1722000), %o5
       0xfd6fc900: post_compiled_method_load_event+0x000c: sethi
       %hi(0x2b400), %i5
       0xfd6fc904: post_compiled_method_load_event+0x0010: ld [%i1 + 48],
       %i3 <------ SEGV
       0xfd6fc908: post_compiled_method_load_event+0x0014: inc 80, %o5
       0xfd6fc90c: post_compiled_method_load_event+0x0018: add %i5, 984, %i2
       0xfd6fc910: post_compiled_method_load_event+0x001c: add %o5, %o7, %i4
       0xfd6fc914: post_compiled_method_load_event+0x0020: st %i3, [%fp - 4]
       0xfd6fc918: post_compiled_method_load_event+0x0024: ld [%i4 + %i2], %i


      [Exit:jvs.expresso.func.scalar.static_andif_x]
      ......................................
      [Enter:jvs.expresso.func.scalar.static_assign_x]
      Java HotSpot(TM) Server VM warning: CodeCache is full. Compiler has been
      disabled#
      # An unexpected error has been detected by HotSpot Virtual Machine:
      #
      # SIGSEGV (0xb) at pc=0xfd6fc904, pid=8596, tid=12
      #
      # Java VM: Java HotSpot(TM) Server VM (1.6.0-internal-debug compiled mode)
      # Problematic frame:
      # V [libjvm.so+0x2fc904]
      #
      # An error report file with more information is saved as hs_err_pid8596.log
      #
      # If you would like to submit a bug report, please visit:
      # http://java.sun.com/webapps/bugreport/crash.jsp
      #
      Current thread is 12
      Dumping core ...
      Abort
      Java HotSpot(TM) Server VM warning: CodeCache is full. Compiler has been
      disabled

      ###@###.### 2005-06-17 21:37:32 GMT

            kamg Keith Mcguigan (Inactive)
            rknippelsunw Ross Knippel (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: