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

jmx interop regression when Server is over JDK6 and Client over JDK5

XMLWordPrintable

      A remote call to getMBeanInfo using rmi/iiop gets stuck when :
      - server runs over JDK6 (GA or U5)
      - client runs over JDK5 (U5 or U13)

      When dumping the stack :
      ^\Full thread dump Java HotSpot(TM) Server VM (1.5.0_13-rev-b06 mixed mode):

      "Thread-2" daemon prio=10 tid=0x085b7a40 nid=0xf waiting on condition [0xc387d000..0xc387dc28]
              at java.lang.Thread.sleep(Native Method)
              at com.sun.jmx.remote.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:154)
              at java.lang.Thread.run(Thread.java:595)

      "p: default-threadpool; w: Idle" daemon prio=10 tid=0x082ffe10 nid=0xe in Object.wait() [0xc39ab000..0xc39abca8]
              at java.lang.Object.wait(Native Method)
              - waiting on <0xf28b6f28> (a com.sun.corba.se.impl.orbutil.threadpool.WorkQueueImpl)
              at com.sun.corba.se.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.java:122)
              - locked <0xf28b6f28> (a com.sun.corba.se.impl.orbutil.threadpool.WorkQueueImpl)
              at com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:388)

      "SelectorThread" daemon prio=10 tid=0x082b0428 nid=0xd runnable [0xc39ed000..0xc39edb28]
              at sun.nio.ch.DevPollArrayWrapper.poll0(Native Method)
              at sun.nio.ch.DevPollArrayWrapper.poll(DevPollArrayWrapper.java:164)
              at sun.nio.ch.DevPollSelectorImpl.doSelect(DevPollSelectorImpl.java:68)
              at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
              - locked <0xf28c0f10> (a sun.nio.ch.Util$1)
              - locked <0xf28c0f00> (a java.util.Collections$UnmodifiableSet)
              - locked <0xf28c0b58> (a sun.nio.ch.DevPollSelectorImpl)
              at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
              at com.sun.corba.se.impl.transport.SelectorImpl.run(SelectorImpl.java:249)

      "Low Memory Detector" daemon prio=10 tid=0x08191fe8 nid=0xb runnable [0x00000000..0x00000000]

      "CompilerThread1" daemon prio=10 tid=0x08190760 nid=0xa waiting on condition [0x00000000..0xc3bfce30]

      "CompilerThread0" daemon prio=10 tid=0x0818f930 nid=0x9 waiting on condition [0x00000000..0xf7e510b0]

      "AdapterThread" daemon prio=10 tid=0x0818eb00 nid=0x8 waiting on condition [0x00000000..0x00000000]

      "Signal Dispatcher" daemon prio=10 tid=0x0818dd38 nid=0x7 waiting on condition [0x00000000..0x00000000]

      "Finalizer" daemon prio=10 tid=0x081814f8 nid=0x6 in Object.wait() [0xf7f17000..0xf7f17ca8]
              at java.lang.Object.wait(Native Method)
              - waiting on <0xf2800ad8> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
              - locked <0xf2800ad8> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
              at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

      "Reference Handler" daemon prio=10 tid=0x08181008 nid=0x5 in Object.wait() [0xf7f59000..0xf7f59b28]
              at java.lang.Object.wait(Native Method)
              - waiting on <0xf28009e8> (a java.lang.ref.Reference$Lock)
              at java.lang.Object.wait(Object.java:474)
              at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
              - locked <0xf28009e8> (a java.lang.ref.Reference$Lock)

      "main" prio=10 tid=0x080744f0 nid=0x1 in Object.wait() [0x08045000..0x08046178]
              at java.lang.Object.wait(Native Method)
              - waiting on <0xf2ae27d8> (a java.lang.Object)
              at java.lang.Object.wait(Object.java:474)
              at com.sun.corba.se.impl.transport.CorbaResponseWaitingRoomImpl.waitForResponse(CorbaResponseWaitingRoomImpl.java:140)
              - locked <0xf2ae27d8> (a java.lang.Object)
              at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.waitForResponse(SocketOrChannelConnectionImpl.java:1058)
              at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.waitForResponse(CorbaMessageMediatorImpl.java:253)
              at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete1(CorbaClientRequestDispatcherImpl.java:349)
              at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:323)
              at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:129)
              at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
              at com.sun.org.omg.SendingContext._CodeBaseStub.meta(_CodeBaseStub.java:105)
              at com.sun.corba.se.impl.encoding.CachedCodeBase.meta(CachedCodeBase.java:89)
              at com.sun.corba.se.impl.io.IIOPInputStream.getOrderedDescriptions(IIOPInputStream.java:1276)
              at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectUsingFVD(IIOPInputStream.java:1455)
              at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:398)
              at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:327)
              at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:293)
              at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
              at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:253)
              at com.sun.jmx.remote.internal.PInputStream.read_value(Unknown Source)
              at org.omg.stub.javax.management.remote.rmi._RMIConnection_Stub.getMBeanInfo(Unknown Source)
              at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getMBeanInfo(RMIConnector.java:1031)
              at Client.main(Client.java:42)

      "VM Thread" prio=10 tid=0x0817ef30 nid=0x4 runnable

      "GC task thread#0 (ParallelGC)" prio=10 tid=0x080f62f0 nid=0x2 runnable

      "GC task thread#1 (ParallelGC)" prio=10 tid=0x080f6d30 nid=0x3 runnable

      "VM Periodic Task Thread" prio=10 tid=0x080ed9e8 nid=0xc waiting on condition


      In order to reproduce, use the attached zip file of bug 6288100 that contains all java and class files and follow the steps as listed:
              In a first shell, do:
              tnameserv -ORBInitialPort 9999
              
              In a second shell, do:
              java Server
              
              In a third shell, do:
              java Client

            sjiang Shanliang Jiang (Inactive)
            slions Sandra Lions-piron
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: