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

bytecode inlining isn't thread safe

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P1 P1
    • 1.2.0
    • 1.1.6, 1.2.0
    • hotspot
    • None
    • 1.1
    • 1.1
    • 1.2beta2
    • x86
    • solaris_2.6, windows_nt
    • Not verified



      Name: sg39081 Date: 07/23/97


      The following program exhibits a bug in the Java VM (1.2 EA) when run
      on a Windows NT 4.0 multi processor machine. It does not appear on
      single processor machines. Also note that it does not occur everytime
      it is run. The symptom is "The instruction 0x10032b36 referenced
      memory at 0x0900b45e. The memory could not be read." We have seen
      this on an HP Vectra, Pentium Pro 150 mhz dual processor with 64mb of
      memory and another machine of the same configuration except that it
      has 200mhz processors. One of our users also reported it with a dual
      processor machine (pentium, 180 mhz, but I don't know the rest of the
      configuration).

      To run the program, uudecode the included pro.zip file. Put the
      pro.zip file and the directory containing the PseTest9a.java file in
      your classpath. Compile PseTest9a.java.

      CLASSPATH=pro.zip;<dir>

      where <dir> contains PseTest9a.java. Do "java PseTest9a" several
      times. Some runs will complete silently, others will get a
      NullPointerException, and others will crash the Java VM. This bug has
      been present since at least the JDK 1.1.1.

      I'm sorry that I can't come up with a smaller test case for you. We
      tried narrowing it down and as near as we can tell it has to do with
      class loading via Class.forName() (which this program does down in the
      pro.zip library).

      Please let me know if I can help in any way to get this resolved.

      Regards,
      Charlie Lamb
      ###@###.###

      import COM.odi.*;

      public class PseTest9a implements Runnable {
        static Thread numberTwo = null;

        public static void main(String argv[]) {
          (numberTwo = (new Thread(new PseTest9a()))).start();
          proc("test1.odb");
        }

        
        static void proc(String dbName) {
          Database db;

          ObjectStore.initialize(null, null);

          try {
            db = Database.open(dbName, Database.openUpdate);
            db.destroy();
          } catch (DatabaseNotFoundException e) {}
          
          db = Database.create(dbName, Database.allRead | Database.allWrite);
          db.close();
        }

        public void run() {
          proc("test2.odb");
        }
      }



      Attachment converted: pro.zip (pZIP/pZIP) (0000C0C0)
      ======================================================================

            never Tom Rodriguez
            sgoodsunw Sheri Good (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: