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

Corba classes deadlock

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P4 P4
    • None
    • 7u10
    • other-libs
    • generic
    • generic

      FULL PRODUCT VERSION :
      java version "1.7.0_10"
      Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
      Java HotSpot(TM) Server VM (build 23.6-b04, mixed mode)


      ADDITIONAL OS VERSION INFORMATION :
      Linux ubuntu 3.2.0-54-generic-pae #82-Ubuntu SMP Tue Sep 10 20:29:22 UTC 2013 i686 i686 i386 GNU/Linux

      A DESCRIPTION OF THE PROBLEM :
      Execution of the attached program sometimes deadlocks!

      REGRESSION. Last worked in version 7u10

      ADDITIONAL REGRESSION INFORMATION:
      java version "1.7.0_10"
      Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
      Java HotSpot(TM) Server VM (build 23.6-b04, mixed mode)


      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Run many times in background from a single command-line, and observe that not all of their executions terminate as expected !!

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      All executions must terminate
      ACTUAL -
      However, some deadlock !!

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      Found one Java-level deadlock:
      =============================
      "Thread-1":
        waiting to lock monitor 0x6fc037a8 (object 0x707d93b8, a java.lang.Class),
        which is held by "Thread-0"
      "Thread-0":
        waiting to lock monitor 0x6fc03744 (object 0x70663c48, a java.lang.Class),
        which is held by "Thread-1"

      Java stack information for the threads listed above:
      ===================================================
      "Thread-1":
      at com.sun.org.omg.CORBA.StructMemberHelper.type(StructMemberHelper.java:48)
      - waiting to lock <0x707d93b8> (a java.lang.Class for com.sun.org.omg.CORBA.StructMemberHelper)
      at com.sun.org.omg.CORBA.InitializerHelper.type(InitializerHelper.java:55)
      - locked <0x70663c48> (a java.lang.Class for org.omg.CORBA.TypeCode)
      - locked <0x705e3998> (a java.lang.Class for com.sun.org.omg.CORBA.InitializerHelper)
      at CorbaSmhDeadlock$2.run(CorbaSmhDeadlock.java:25)
      "Thread-0":
      at com.sun.org.omg.CORBA.StructMemberHelper.type(StructMemberHelper.java:52)
      - waiting to lock <0x70663c48> (a java.lang.Class for org.omg.CORBA.TypeCode)
      - locked <0x707d93b8> (a java.lang.Class for com.sun.org.omg.CORBA.StructMemberHelper)
      at com.sun.org.omg.CORBA.StructMemberHelper.insert(StructMemberHelper.java:32)
      at CorbaSmhDeadlock$1.run(CorbaSmhDeadlock.java:20)

      Found 1 deadlock.


      REPRODUCIBILITY :
      This bug can be reproduced occasionally.

      ---------- BEGIN SOURCE ----------
      ceems@ubuntu:~/phd-new/thesis/last-minus/oopsla-tarball/deadlocks/src$ cat CorbaSmhDeadlock.java
      /* <Cycle-2 locks=" com.sun.org.omg.CORBA.StructMemberHelper.class(1.3) org.omg.CORBA.TypeCode.class(1.2)(Update)">
       * <Thread-1>
       * com.sun.org.omg.CORBA.StructMemberHelper.insert:(Lorg/omg/CORBA/Any;Lorg/omg/CORBA/StructMember;)V
       * <com.sun.org.omg.CORBA.StructMemberHelper.class>com.sun.org.omg.CORBA.StructMemberHelper.type:()Lorg/omg/CORBA/TypeCode;
       * org.omg.CORBA.TypeCode.class
       * <org.omg.CORBA.TypeCode.class>com.sun.org.omg.CORBA.StructMemberHelper.type:()Lorg/omg/CORBA/TypeCode;#Lorg/omg/CORBA/TypeCode.class;#0=VarientOf=com.sun.org.omg.CORBA.StructMemberHelper.type:()Lorg/omg/CORBA/TypeCode;
       * </Thread-1>
       * <Thread-2>
       * <com.sun.org.omg.CORBA.InitializerHelper.class>com.sun.org.omg.CORBA.InitializerHelper.type:()Lorg/omg/CORBA/TypeCode;
       * <org.omg.CORBA.TypeCode.class>com.sun.org.omg.CORBA.InitializerHelper.type:()Lorg/omg/CORBA/TypeCode;#Lorg/omg/CORBA/TypeCode.class;#0=VarientOf=com.sun.org.omg.CORBA.InitializerHelper.type:()Lorg/omg/CORBA/TypeCode;
       * com.sun.org.omg.CORBA.StructMemberHelper.class
       * <com.sun.org.omg.CORBA.StructMemberHelper.class>com.sun.org.omg.CORBA.StructMemberHelper.type:()Lorg/omg/CORBA/TypeCode;
       * </Thread-2>
       * </Cycle-2>
       */

      public class CorbaSmhDeadlock {
       public static void main(String[] args) {
        new Thread() {
         public void run() { com.sun.org.omg.CORBA.StructMemberHelper.insert(
                          new com.sun.corba.se.impl.corba.AnyImpl(
                          new com.sun.corba.se.impl.orb.ORBSingleton()), null); };
        }.start();
        new Thread() {
         public void run() { com.sun.org.omg.CORBA.InitializerHelper.type(); };
        }.start();
       }
      }

      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      Run again and hoe for the best !!

            msheppar Mark Sheppard
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: