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

REGRESSION: Stack overflow and Error ID: 53484152454432554E54494D450E43505000DB

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • 1.3.0
    • hotspot
    • x86
    • windows_nt



      Name: ddT132432 Date: 11/09/2001


      java version "1.3.1_01"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01)
      Java HotSpot(TM) Client VM (build 1.3.1_01, mixed mode)

      I tested java with a highly-recursive program. I tested, when a stack-overflow
      occurs. I expected a stack-overflow or a running program. Instead this, java
      requested me to report this error:
      #
      # HotSpot Virtual Machine Error, Internal Error
      # Please report this error at
      # http://java.sun.com/cgi-bin/bugreport.cgi
      #
      # Error ID: 53484152454432554E54494D450E43505000DB
      #
      # Problematic Thread: prio=5 tid=0x761990 nid=0x106 runnable
      #

      the following function call failed:
      Ackermann(1L,6666L)

      here is the java source:

      package de.unilog.java.grundlagen;
      public class HJW{

      // Zeilenkommentar

      /* mehrzeiliger
         Blockkommentar

      java de.unilog.java.grundlagen.HJW
         
      */

      public static void main(java.lang.String[] Uebergabeparameter)
      {
          Ackermann();
      }


      private static void Ackermann()
      {
        java.lang.System.out.println("Ackermann 0 -> " + Ackermann(0L,0L));
        java.lang.System.out.println("Ackermann 0 -> " + Ackermann(0L,1L));
        java.lang.System.out.println("Ackermann 0 -> " + Ackermann(0L,2L));
        java.lang.System.out.println("Ackermann 0 -> " + Ackermann(0L,3L));
        java.lang.System.out.println("Ackermann 0 -> " + Ackermann(0L,4L));
        java.lang.System.out.println("Ackermann 0 -> " + Ackermann(0L,5L));
        java.lang.System.out.println("----------------------------------");
        java.lang.System.out.println("Ackermann 1 -> " + Ackermann(1L,0L));
        java.lang.System.out.println("Ackermann 1 -> " + Ackermann(1L,1L));
        java.lang.System.out.println("Ackermann 1 -> " + Ackermann(1L,2L));
        java.lang.System.out.println("Ackermann 1 -> " + Ackermann(1L,3L));
        java.lang.System.out.println("Ackermann 1 -> " + Ackermann(1L,4L));
        java.lang.System.out.println("Ackermann 1 -> " + Ackermann(1L,5L));
        java.lang.System.out.println("Ackermann x -> " + Ackermann(1L,6666L));
        java.lang.System.out.println("----------------------------------");
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,0L));
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,1L));
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,2L));
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,3L));
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,4L));
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,5L));
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,6L));
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,7L));
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,8L));
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,9L));
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,10L));
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,11L));
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,12L));
        java.lang.System.out.println("Ackermann 2 -> " + Ackermann(2L,13L));
        java.lang.System.out.println("----------------------------------");
        java.lang.System.out.println("Ackermann 3 -> " + Ackermann(3L,0L));
        java.lang.System.out.println("Ackermann 3 -> " + Ackermann(3L,1L));
        java.lang.System.out.println("Ackermann 3 -> " + Ackermann(3L,2L));
        java.lang.System.out.println("Ackermann 3 -> " + Ackermann(3L,3L));
        java.lang.System.out.println("----------------------------------");
        java.lang.System.out.println("Ackermann 4 -> " + Ackermann(4L,0L));
        java.lang.System.out.println("Ackermann 4 -> " + Ackermann(4L,1L));
        java.lang.System.out.println("Ackermann 4 -> " + Ackermann(4L,2L));
      }

      private static long Ackermann(long m, long n)
      {
         return
                (n == 0) ? 1L :
                (n == 1) ? 2L :
                (m == 0) ? n + 2L :
                Ackermann(m - 1, Ackermann(m, n - 1));
      }

      }

      Webbugs Test < ----------------

      Solaris 8
      Using 1.3.1, 1.3.1_01, 1.4beta3 did not show this error. A Stack overflow
      occurred.

      Windows NT 4 SP6
      Using 1.3.1, A Stack overflow occurred after some execution of the code.

      Using 1.4-rc-b85, A Stack overflow occurred after some execution of
      the code. No hotspot error occured

      Using 1.3.1-01, The hotspot error listed above was experianced

      Windows 2k
      Using 1.3.1 and using 1.3.1_01 resulted in the same hotspot error listed
      above.

      Using 1.4-rc-b85, A Stack overflow occurred after some execution of the code.
      No hotspot error occured

      Release Regression From : 1.3.1
      The above release value was the last known release where this
      bug was knwon to work. Since then there has been a regression.

      (Review ID: 135342)
      ======================================================================

            duke J. Duke
            ddressersunw Daniel Dresser (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: