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

SIGILL/core dump when obtaining I/O Streams from Socket - JIT enabled

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P4 P4
    • None
    • 1.1.7
    • vm-legacy
    • jit
    • sparc
    • solaris_2.6



      Name: krT82822 Date: 04/29/99


      Problem apparently only occurs when running the JRE
      with the JIT enabled. It occurs both in JRE 1.1.6 and JRE 1.1.7
      on Solaris 2.5.1 and Solaris 2.6. It has never been observed
      on NT 4.0 (where JRE 1.1.7b is the latest we've tested).

      The problem exhibits itself only (so far) when running an extensive
      set of MATs (Minimum acceptance tests) against our Data Replication
      server application. Each time it occurs (and it does not occur
      every time), the following Thread Stack dump is produced:

      (This particular dump was produced on a Solaris 2.6 machine
      running JRE 1.1.7 with JIT enabled)

          SIGILL 4* illegal instruction
          si_signo [4]: SIGILL 4* illegal instruction
          si_errno [0]: Error 0
          si_code [1]: ILL_ILLOPC [addr: 0x6d1d98c0]

              stackbase=6ECD3D74, stackpointer=6ECD2B14

      Full thread dump:
          "Maint Port" (TID:0x6d1d2120, sys_thread_t:0x2dcb08, state:R, thread_t: t@11, sp:0x6ecd3d80 threadID:0x6ecd3de0, stack_base:0x6ecd3d74, stack_size:0x22000) prio=5 *current thread*
              com.sybase.tds.SrvReceiver.createSession(Compiled Code)
              com.sybase.ra.beanmgr.TDSPortHandler.createPort(Compiled Code)
              com.sybase.ra.beanmgr.MaintPort$MaintPortServerThread.run(Compiled Code)
              java.lang.Thread.run(Compiled Code)
          "Thread" (TID:0x6d1d1740, sys_thread_t:0x2c8c28, state:CW, thread_t: t@10, sp:0x6ee42d80 threadID:0x6ee43de0, stack_base:0x6ee43d74, stack_size:0x22000) prio=5
              java.lang.Object.wait(Compiled Code)
              com.sybase.ra.util.BoundedBuffer.take(Compiled Code)
              com.sybase.ra.ltm.LTM.run(Compiled Code)
              java.lang.Thread.run(Compiled Code)
          "LR EventService Thread" (TID:0x6d1d1560, sys_thread_t:0x2bcad8, state:CW, thread_t: t@9, sp:0x6ee72cd0 threadID:0x6ee73de0, stack_base:0x6ee73d74, stack_size:0x22000) prio=5
              java.lang.Object.wait(Compiled Code)
              com.sybase.ra.lr.EventQueue.next(Compiled Code)
              com.sybase.ra.lr.LREventService.run(Compiled Code)
              com.sybase.ra.util.RunnableTask.run(Compiled Code)
              com.sybase.ra.util.ThreadPoolThread.run(Compiled Code)
          "T_THREADPOOL" (TID:0x6d1d0ce8, sys_thread_t:0x2a5308, state:CW, thread_t: t@8, sp:0x6efc2e18 threadID:0x6efc3de0, stack_base:0x6efc3d74, stack_size:0x22000) prio=5
              java.lang.Object.wait(Compiled Code)
              com.sybase.ra.util.ThreadPool.getRunnableTask(Compiled Code)
              com.sybase.ra.util.ThreadPool.run(Compiled Code)
          "LTI Thread" (TID:0x6d1bf690, sys_thread_t:0x2137b0, state:CW, thread_t: t@7, sp:0x6eff2e00 threadID:0x6eff3de0, stack_base:0x6eff3d74, stack_size:0x22000) prio=5
              java.lang.Object.wait(Compiled Code)
              com.sybase.ra.lti.LTI.run(Compiled Code)
              java.lang.Thread.run(Compiled Code)
          "SIGQUIT handler" (TID:0x6d1982a0, sys_thread_t:0x80ec8, state:R, thread_t: t@5, sp:0x6fb43af0 threadID:0x6fb43de0, stack_base:0x6fb43d74, stack_size:0x22000) prio=0
          "Finalizer thread" (TID:0x6d198088, sys_thread_t:0x80e38, state:CW, thread_t: t@4, sp:0x6fb73a30 threadID:0x6fb73de0, stack_base:0x6fb73d74, stack_size:0x22000) prio=1
          "main" (TID:0x6d1980b0, sys_thread_t:0x60348, state:CW, thread_t: t@1, sp:0xeffff0a0 threadID:0x236f8, stack_base:0x0, stack_size:0x7ffff000) prio=5
      Monitor Cache Dump:
          com.sybase.ra.util.ThreadPool@6D1D0CE8/6D3BD450: <unowned>
              Waiting to be notified:
                  "T_THREADPOOL" (0x2a5308)
          com.sybase.ra.beanmgr.TDSPortHandler@6D1D1AC0/6D3244F8: owner "Maint Port" (0x2dcb08, 1 entry)
          com.sybase.ra.util.BoundedBuffer@6D1CFD58/6D3B3BD8: <unowned>
              Waiting to be notified:
                  "Thread" (0x2c8c28)
          com.sybase.ra.lr.EventQueue@6D1D0C80/6D3BD710: <unowned>
              Waiting to be notified:
                  "LR EventService Thread" (0x2bcad8)
          com.sybase.ra.util.RunnableTask@6D1D11F0/6D3BEF00: owner "LR EventService Thread" (0x2bcad8, 1 entry)
          com.sybase.ra.lti.LTI@6D1B3B70/6D314FB0: <unowned>
              Waiting to be notified:
                  "LTI Thread" (0x2137b0)
      Registered Monitor Dump:
          PCMap lock: <unowned>
          Thread queue lock: <unowned>
              Waiting to be notified:
                  "main" (0x60348)
          Name and type hash table lock: <unowned>
          String intern lock: <unowned>
          JNI pinning lock: <unowned>
          JNI global reference lock: <unowned>
          BinClass lock: <unowned>
          Class loading lock: <unowned>
          Java stack lock: <unowned>
          Code rewrite lock: <unowned>
          Heap lock: <unowned>
          Has finalization queue lock: <unowned>
          Finalize me queue lock: <unowned>
              Waiting to be notified:
                  "Finalizer thread" (0x80e38)
          Monitor registry: owner "Maint Port" (0x2dcb08, 1 entry)
      Abort

      [1] Exit 134 ra_sol -i rao_ware


      The current thread, "Maint Port", is executing createSession() --
      a one-liner which calls another method startSession()
      as follows:

      public SrvSession createSession(Socket socket)
      throws IOException
      {
        return startSession(new SrvSession(socket.getInputStream(),
                                           socket.getOutputStream(),
                                           false, false)
                            );
      }

      This method is entered each time a client attempts to make a
      connection to the server. We have not yet been able to reproduce
      the problem outside of our automated test suite.

      According to the Thread Stack Dump produced, control is still
      in this method. Beyond that I have no way of knowing whether
      the cause of the stack and core dump is something in
      startSession(), the constructor for SrvSession, or in
      Socket.getXXXStream() calls.

      In one instance when the JRE crashed (1.1.7 JIT), a File I/O
      error occurred in the test case immediately before the test
      which crashed. It is unknown if the File I/O problem is directly
      related.

      I have a core file saved from the above crash. If it would be
      of assistance, I can email it seperately.
      (Review ID: 57661)
      ======================================================================

            Unassigned Unassigned
            kryansunw Kevin Ryan (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: