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

Java Library deadlock -- in the CORBA-API

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P4 P4
    • None
    • None
    • other-libs
    • Linux ubuntu 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux



                                      
      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 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux

      EXTRA RELEVANT SYSTEM CONFIGURATION : just a plain and simple desk-top, running ubuntu.

      A DESCRIPTION OF THE PROBLEM : A simple program with two threads deadlocks the JVM. !!

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : ceems@ubuntu:~/phd-new/thesis/last-minus/oopsla/oopsla$ /usr/local/share/jdk1.7.0_10/bin/jdb CorbaEDeadlock Initializing jdb ... > stop in com.sun.org.omg.CORBA.OperationDescriptionHelper.type Deferring breakpoint com.sun.org.omg.CORBA.OperationDescriptionHelper.type. It will be set after the class is loaded. > stop in com.sun.org.omg.CORBA.ExceptionDescriptionHelper.type Deferring breakpoint com.sun.org.omg.CORBA.ExceptionDescriptionHelper.type. It will be set after the class is loaded. > run run CorbaEDeadlock Set uncaught java.lang.Throwable Set deferred uncaught java.lang.Throwable > VM Started: Set deferred breakpoint com.sun.org.omg.CORBA.ExceptionDescriptionHelper.type Breakpoint hit: "thread=Thread-0", com.sun.org.omg.CORBA.ExceptionDescriptionHelper.type(), line=60 bci=0 Thread-0[1] threads Group system: (java.lang.ref.Reference$ReferenceHandler)0x150 Reference Handler cond. waiting (java.lang.ref.Finalizer$FinalizerThread)0x14f Finalizer cond. waiting (java.lang.Thread)0x14e Signal Dispatcher running Group main: (CorbaEDeadlock$1)0x176 Thread-0 running (at breakpoint) (CorbaEDeadlock$2)0x178 Thread-1 running (java.lang.Thread)0x177 DestroyJavaVM running Thread-0[1] suspend 0x176 Thread-0[1] cont > Set deferred breakpoint com.sun.org.omg.CORBA.OperationDescriptionHelper.type Breakpoint hit: "thread=Thread-1", com.sun.org.omg.CORBA.OperationDescriptionHelper.type(), line=60 bci=0 Thread-1[1] threadlocks Monitor information for thread Thread-1: Owned monitor: instance of java.lang.Class(reflected class=com.sun.org.omg.CORBA.OperationDescriptionHelper, id=380) Not waiting for a monitor Thread-1[1] threads Group system: (java.lang.ref.Reference$ReferenceHandler)0x150 Reference Handler cond. waiting (java.lang.ref.Finalizer$FinalizerThread)0x14f Finalizer cond. waiting (java.lang.Thread)0x14e Signal Dispatcher running Group main: (CorbaEDeadlock$1)0x176 Thread-0 running (at breakpoint) (CorbaEDeadlock$2)0x178 Thread-1 running (at breakpoint) (java.lang.Thread)0x177 DestroyJavaVM running Thread-1[1] resume 0x176 Thread-1[1] cont > ^\2013-03-22 21:29:15 Full thread dump Java HotSpot(TM) Server VM (23.6-b04 mixed mode): [...] Found one Java-level deadlock: ============================= "Thread-1": waiting to lock monitor 0x08ed0b68 (object 0xa4976aa8, a java.lang.Class), which is held by "Thread-0" "Thread-0": waiting to lock monitor 0x08ecff4c (object 0xa49f0638, 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.ExceptionDescriptionHelper.type(ExceptionDescriptionHelper.java:60) - waiting to lock <0xa4976aa8> (a java.lang.Class for com.sun.org.omg.CORBA.ExceptionDescriptionHelper) at com.sun.org.omg.CORBA.OperationDescriptionHelper.type(OperationDescriptionHelper.java:123) - locked <0xa49f0638> (a java.lang.Class for org.omg.CORBA.TypeCode) - locked <0xa49f04c8> (a java.lang.Class for com.sun.org.omg.CORBA.OperationDescriptionHelper) at CorbaEDeadlock$2.run(CorbaEDeadlock.java:7) "Thread-0": at com.sun.org.omg.CORBA.ExceptionDescriptionHelper.type(ExceptionDescriptionHelper.java:64) - waiting to lock <0xa49f0638> (a java.lang.Class for org.omg.CORBA.TypeCode) - locked <0xa4976aa8> (a java.lang.Class for com.sun.org.omg.CORBA.ExceptionDescriptionHelper) at CorbaEDeadlock$1.run(CorbaEDeadlock.java:4) Found 1 deadlock. [...]

      EXPECTED VERSUS ACTUAL BEHAVIOR : EXPECTED - The underlying JVM ought not to dweadlock

      ACTUAL - As demonstrated using jdb the program always deadlocks

      ERROR MESSAGES/STACK TRACES THAT OCCUR : Deadlocked stack. REPRODUCIBILITY : This bug can be reproduced often. ---------- BEGIN SOURCE ---------- ceems@ubuntu:~/phd-new/thesis/last-minus/deadlocks$ cat CorbaEDeadlock.java /*<Cycle-2 locks=" org.omg.CORBA.TypeCode.class com.sun.org.omg.CORBA.ExceptionDescriptionHelper.class"> <Thread-1> <com.sun.org.omg.CORBA.OperationDescriptionHelper.class>com.sun.org.omg.CORBA.OperationDescriptionHelper.type:()Lorg/omg/CORBA/TypeCode; <org.omg.CORBA.TypeCode.class>com.sun.org.omg.CORBA.OperationDescriptionHelper.type:()Lorg/omg/CORBA/TypeCode;#Lorg/omg/CORBA/TypeCode.class;#0=VarientOf=com.sun.org.omg.CORBA.OperationDescriptionHelper.type:()Lorg/omg/CORBA/TypeCode; com.sun.org.omg.CORBA.ExceptionDescriptionHelper.class <com.sun.org.omg.CORBA.ExceptionDescriptionHelper.class>com.sun.org.omg.CORBA.ExceptionDescriptionHelper.type:()Lorg/omg/CORBA/TypeCode; </Thread-1> <Thread-2> com.sun.org.omg.CORBA.ExceptionDescriptionHelper.insert:(Lorg/omg/CORBA/Any;Lcom/sun/org/omg/CORBA/ExceptionDescription;)V <com.sun.org.omg.CORBA.ExceptionDescriptionHelper.class>com.sun.org.omg.CORBA.ExceptionDescriptionHelper.type:()Lorg/omg/CORBA/TypeCode; org.omg.CORBA.TypeCode.class <org.omg.CORBA.TypeCode.class>com.sun.org.omg.CORBA.ExceptionDescriptionHelper.type:()Lorg/omg/CORBA/TypeCode;#Lorg/omg/CORBA/TypeCode.class;#0=VarientOf=com.sun.org.omg.CORBA.ExceptionDescriptionHelper.type:()Lorg/omg/CORBA/TypeCode; *</Thread-2> *</Cycle-2> */ public class CorbaEDeadlock { public static void main(String[] args) { new Thread() { public void run() { (new com.sun.org.omg.CORBA.ExceptionDescriptionHelper()).type(); }; }.start(); new Thread() { public void run() { (new com.sun.org.omg.CORBA.OperationDescriptionHelper()).type(); }; }.start(); } }


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


      CUSTOMER SUBMITTED WORKAROUND : No work around


                                              

            Unassigned Unassigned
            ndcosta Nelson Dcosta (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: