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

ObjectStreamClass.lookup has too much synchronization, which leads to application hang

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P2 P2
    • 1.4.0
    • 1.4.2_20
    • core-libs
    • None

      Many threads are waiting to lock "java.misc.SoftCache" leading to application slow down and Performance degradation.

      Problem is the same as 4462602. Filing an RFE as suggested in this bug.

      Steps to recreate the problem :

      1. Run the testcase (src.zip file attached) :
      To start the server socket run "java Server"
      To run the client program run "java OOTest 1000"


      Stack Trace :

      The thread stacks look like below;

      >>> >
      >>> > "_ELB_IN_SOC_SyS-SESSION-99" prio=10 tid=19362d20 nid=458
      >>> > lwp_id=1181691 waiting for monitor entry [40dc0000..40dc0dc0]
      >>> > at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:241)
      >>> > - waiting to lock <9da62578> (a sun.misc.SoftCache)
      >>> > at
      >>> >
      >
      >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1010)
      >
      >>> > at
      >>> > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStre
      >>> > am.java:1332)
      >>> > at
      >>> > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.
      >>> > java:1304)
      >>> > at
      >>> > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStr
      >>> > eam.java:1247)
      >>> > at
      >>> >
      >
      >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
      >
      >>> > at
      >>> > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
      >>> > at
      >>> > weblogic.jms.common.ObjectMessageImpl.setObject(ObjectMessageI
      >>> > mpl.java:116)
      >>> > at
      >>> > com.kbstar.eai.common.util.JMSSender.sendToQueue(JMSSender.java:67)
      >>> > at
      >>> >
      >
      >> com.kbstar.eai.common.logger.EAILogSender.send(EAILogSender.java:161)
      >
      >>> > at
      >>> > com.kbstar.eai.control.EAILogSenderControlImpl.send(EAILogSend
      >>> > erControlImpl.jcs:28)
      >>> > at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source)
      >>> > at
      >>> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth
      >>> > odAccessorImpl.java:25)
      >>> > at java.lang.reflect.Method.invoke(Method.java:324)
      >>> > at
      >>> > com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(DispMeth
      >>> > od.java:371)
      >>> > at
      >>> > com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.
      >>> > java:423)
      >>> > at
      >>> > com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.
      >>> > java:396)
      >>> > at
      >>> > com.bea.wlw.runtime.jcs.container.JcsProxy.invoke(JcsProxy.java:381)
      >>> > at $Proxy118.send(Unknown Source)
      >>> > at
      >>> > com.kbstar.eai.outbound.SocketProcess.logSenderCtrlSend(Socket
      >>> > Process.jpd:394)
      >>> > at
      >>> > com.kbstar.eai.outbound.SocketProcess_wf$ImplControlSend18.inv
      >
      >> oke(SocketProcess_wf.java:148)
      >
      >>> > at com.bea.wli.bpm.runtime.Perform.execute(Perform.java:32)
      >>> > at
      >>> > com.bea.wli.bpm.runtime.SyncReceive.messageDelivery(SyncReceiv
      >>> > e.java:45)
      >>> > at
      >>> >
      >
      >> com.bea.wli.bpm.runtime.Receive.messageDeliveryAction(Receive.java:71)
      >
      >>> > at
      >>> > com.bea.wli.bpm.runtime.ProcessState.processMessage(ProcessSta
      >>> > te.java:166)
      >>> > at
      >>> > com.kbstar.eai.outbound.SocketProcess_wf$_ProcessState.process
      >>> > Message(SocketProcess_wf.java:984)
      >>> > at
      >>> > com.kbstar.eai.outbound.SocketProcess_wf.$__callService(Socket
      >
      >> Process_wf.java:963)
      >
      >>> > at sun.reflect.GeneratedMethodAccessor92.invoke(Unknown Source)
      >>> > at
      >>> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth
      >>> > odAccessorImpl.java:25)
      >>> > at java.lang.reflect.Method.invoke(Method.java:324)
      >>> > at
      >>> > com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(DispMeth
      >>> > od.java:371)
      >>> > at
      >>> > com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.
      >>> > java:423)
      >>> > at
      >>> > com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.
      >>> > java:396)
      >>> > at
      >>> > com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.
      >>> > java:248)
      >>> > at
      >>> > com.bea.wlw.runtime.core.bean.BaseContainerBean.invokeBase(Bas
      >>> > eContainerBean.java:224)
      >>> > at
      >>> > com.bea.wlw.runtime.core.bean.SLSBContainerBean.invoke(SLSBCon
      >>> > tainerBean.java:103)
      >>> > at
      >>> > com.bea.wlwgen.SocketProcessSLSBContImpl.callService(SocketPro
      >>> > cessSLSBContImpl.java:55)
      >>> > at
      >>> > com.bea.wlwgen.StatelessContainer_lpsov5_ELOImpl.callService(S
      >
      >> tatelessContainer_lpsov5_ELOImpl.java:45)
      >
      >>> > at
      >>> > com.bea.wlwgen.SocketProcessSLSBContAdpt.invokeOnBean(SocketPr
      >>> > ocessSLSBContAdpt.java:73)
      >>> > at
      >>> > com.bea.wlw.runtime.core.bean.BaseDispatcherBean.runAsInvoke(B
      >>> > aseDispatcherBean.java:153)
      >>> > at
      >>> > com.bea.wlw.runtime.core.bean.BaseDispatcherBean.invoke(BaseDi
      >>> > spatcherBean.java:54)
      >>> > at
      >>> > com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(SyncDi
      >>> > spatcherBean.java:168)
      >>> > at
      >>> > com.bea.wlw.runtime.core.bean.SyncDispatcher_k1mrl8_EOImpl.inv
      >
      >> oke(SyncDispatcher_k1mrl8_EOImpl.java:100)
      >
      >>> > at
      >>> > com.bea.wlw.runtime.core.dispatcher.Dispatcher.remoteDispatch(
      >>> > Dispatcher.java:161)
      >>> > at
      >>> > com.bea.wli.bpm.proxy.ProxyDispatcherBean.invoke(ProxyDispatch
      >>> > erBean.java:111)
      >>> > at
      >>> > com.bea.wli.bpm.proxy.ProxyDispatcher_9it87k_EOImpl.invoke(Pro
      >
      >> xyDispatcher_9it87k_EOImpl.java:46)
      >
      >>> > at
      >>> > com.bea.wli.bpm.proxy.ProxyDispatcher_9it87k_EOImpl_WLSkel.inv
      >
      >> oke(Unknown Source)
      >
      >>> > at
      >>> > weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.
      >>> > java:166)
      >>> > at
      >>> > weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAware
      >>> > RemoteRef.java:290)
      >>> > at
      >>> > weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAware
      >>> > RemoteRef.java:247)
      >>> > at
      >>> > com.bea.wli.bpm.proxy.ProxyDispatcher_9it87k_EOImpl_814_WLStub
      >
      >> .invoke(Unknown Source)
      >
      >>> > at
      >>> > com.bea.wli.bpm.proxy.JpdProxyImpl.invoke(JpdProxyImpl.java:135)
      >>> > at $Proxy120.callService(Unknown Source)
      >>> > at
      >>> > com.kbstar.eai.common.routing.KBESBProcessProxy.callKBESBProce
      >>> > ss(KBESBProcessProxy.java:66)
      >>> > at
      >>> > com.kbstar.eai.common.routing.IFRouter.process(IFRouter.java:73)
      >>> > at
      >>> > com.kbstar.eai.control.IFRouterControlImpl.process(IFRouterCon
      >>> > trolImpl.jcs:22)
      >>> > at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
      >>> > at
      >>> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth
      >>> > odAccessorImpl.java:25)
      >>> > at java.lang.reflect.Method.invoke(Method.java:324)
      >>> > at
      >>> > com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(DispMeth
      >>> > od.java:371)
      >>> > at
      >>> > com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.
      >>> > java:423)
      >>> > at
      >>> > com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.
      >>> > java:396)
      >>> > at
      >>> > com.bea.wlw.runtime.jcs.container.JcsProxy.invoke(JcsProxy.java:381)
      >>> > at $Proxy104.process(Unknown Source)
      >>> > at
      >>> > com.kbstar.eai.flowcontroller.BaseFCProcess.ifRouterProcess(Ba
      >>> > seFCProcess.jpd:204)
      >>> > at
      >>> > com.kbstar.eai.flowcontroller.BaseFCProcess_wf$ImplControlSend
      >
      >> 15.invoke(BaseFCProcess_wf.java:122)
      >
      >>> > at com.bea.wli.bpm.runtime.Perform.execute(Perform.java:32)
      >>> > at
      >>> > com.bea.wli.bpm.runtime.SyncReceive.messageDelivery(SyncReceiv
      >>> > e.java:45)
      >>> > at
      >>> >
      >
      >> com.bea.wli.bpm.runtime.Receive.messageDeliveryAction(Receive.java:71)
      >
      >>> > at
      >>> > com.bea.wli.bpm.runtime.ProcessState.processMessage(ProcessSta
      >>> > te.java:166)
      >>> > at
      >>> > com.kbstar.eai.flowcontroller.BaseFCProcess_wf$_ProcessState.p
      >
      >> rocessMessage(BaseFCProcess_wf.java:376)
      >
      >>> > at
      >>> > com.kbstar.eai.flowcontroller.BaseFCProcess_wf.$__callService(
      >
      >> BaseFCProcess_wf.java:355)
      >
      >>> > at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source)
      >>> > at
      >>> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth
      >>> > odAccessorImpl.java:25)
      >>> > at java.lang.reflect.Method.invoke(Method.java:324)
      >>> > at
      >>> > com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(DispMeth
      >>> > od.java:371)
      >>> > at
      >>> > com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.
      >>> > java:423)
      >>> > at
      >>> > com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.
      >>> > java:396)
      >>> > at
      >>> > com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.
      >>> > java:248)
      >>> > at
      >>> > com.bea.wlw.runtime.core.bean.BaseContainerBean.invokeBase(Bas
      >>> > eContainerBean.java:224)
      >>> > at
      >>> > com.bea.wlw.runtime.core.bean.SLSBContainerBean.invoke(SLSBCon
      >>> > tainerBean.java:103)
      >>> > at
      >>> > com.bea.wlwgen.BaseFCProcessSLSBContImpl.callService(BaseFCPro
      >>> > cessSLSBContImpl.java:40)
      >>> > at
      >>> > com.bea.wlwgen.StatelessContainer_h88nmk_ELOImpl.callService(S
      >>> > tatelessContainer_h88nmk_ELOImpl.java:45)
      >>> > at
      >>> > com.bea.wlwgen.BaseFCProcessSLSBContAdpt.invokeOnBean(BaseFCPr
      >>> > ocessSLSBContAdpt.java:62)
      >>> > at
      >>> > com.bea.wlw.runtime.core.bean.BaseDispatcherBean.runAsInvoke(B
      >>> > aseDispatcherBean.java:153)
      >>> > at
      >>> > com.bea.wlw.runtime.core.bean.BaseDispatcherBean.invoke(BaseDi
      >>> > spatcherBean.java:54)
      >>> > at
      >>> > com.bea.wlw.runtime.core.bean.SyncDispatcherBean.invoke(SyncDi
      >>> > spatcherBean.java:168)
      >>> > at
      >>> > com.bea.wlw.runtime.core.bean.SyncDispatcher_k1mrl8_EOImpl.inv
      >
      >> oke(SyncDispatcher_k1mrl8_EOImpl.java:



      Attached is testcase and heap dump output.

            peterjones Peter Jones (Inactive)
            rverabel Raghu Verabelli (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: