glassfish
  1. glassfish
  2. GLASSFISH-14454

[Perf] High thread contention in felix/hk2 module while running performance benchmarks

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 3.1
    • Fix Version/s: 3.1_dev
    • Component/s: other
    • Labels:
      None
    • Environment:

      Operating System: All
      Platform: All

    • Issuezilla Id:
      14,454
    • Tags:

      Description

      Please assign this to correct sub component.
      While running Trade2 benchmark against 5th Nov nightly we have noticed pretty
      high thread contention under following code path and this effects throughput
      numbers a lot. Here is the stack trace,

      1)
      java.lang.Thread.State: BLOCKED (on object monitor)
      at
      org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1756)

      • waiting to lock <0x00002aaabeb43e08> (a
        org.apache.felix.framework.ModuleImpl$ModuleClassLoaderJava5)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at org.jvnet.hk2.config.ConfigModel.getProxyType(ConfigModel.java:152)
        at org.jvnet.hk2.config.Dom.getProxyType(Dom.java:870)
        at org.jvnet.hk2.config.Dom.createProxy(Dom.java:861)
        at org.jvnet.hk2.config.ConfigModel$SingleNode.get(ConfigModel.java:471)
        at org.jvnet.hk2.config.Dom.getter(Dom.java:955)
        at org.jvnet.hk2.config.ConfigBean._getter(ConfigBean.java:179)
        at org.jvnet.hk2.config.ConfigBean.getter(ConfigBean.java:187)
        at org.jvnet.hk2.config.Dom.invoke(Dom.java:905)
        at
        org.glassfish.config.support.TranslatedConfigView.invoke(TranslatedConfigView.java:119)
        at $Proxy21.getResources(Unknown Source)
        at
        com.sun.enterprise.connectors.ConnectorRuntime.getResources(ConnectorRuntime.java:1399)
        at
        com.sun.enterprise.connectors.ConnectorRuntime.getResources(ConnectorRuntime.java:1395)
        at
        com.sun.enterprise.connectors.util.ResourcesUtil.getResources(ResourcesUtil.java:106)
        at
        com.sun.enterprise.connectors.util.ResourcesUtil.getResource(ResourcesUtil.java:1133)
        at
        com.sun.enterprise.connectors.ConnectionManagerImpl.validateResourceAndPool(ConnectionManagerImpl.java:393)
        at
        com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:169)
        at
        com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:163)
        at
        com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:158)
        at com.sun.gjc.spi.base.DataSource.getConnection(DataSource.java:110)

      2)
      java.lang.Thread.State: BLOCKED (on object monitor)
      at
      org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1756)

      • waiting to lock <0x00002aaabeb43e08> (a
        org.apache.felix.framework.ModuleImpl$ModuleClassLoaderJava5)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at org.jvnet.hk2.config.ConfigModel.getProxyType(ConfigModel.java:152)
        at org.jvnet.hk2.config.Dom.getProxyType(Dom.java:870)
        at org.jvnet.hk2.config.Dom.createProxy(Dom.java:861)
        at org.jvnet.hk2.config.ConfigModel$CollectionNode$1.get(ConfigModel.java:397)
        at org.jvnet.hk2.config.ConfigBean$2.get(ConfigBean.java:200)
        at java.util.AbstractList$Itr.next(AbstractList.java:345)
        at
        com.sun.enterprise.config.serverbeans.Resources$Duck.getResources(Resources.java:105)
        at sun.reflect.GeneratedMethodAccessor60.invoke(Unknown Source)
        at
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jvnet.hk2.config.Dom.invokeDuckMethod(Dom.java:943)
        at org.jvnet.hk2.config.Dom.invoke(Dom.java:896)
        at
        org.glassfish.config.support.TranslatedConfigView.invoke(TranslatedConfigView.java:119)
        at $Proxy91.getResources(Unknown Source)
        at
        com.sun.enterprise.config.serverbeans.Resources$Duck.getResourceByName(Resources.java:157)
        at sun.reflect.GeneratedMethodAccessor63.invoke(Unknown Source)
        at
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jvnet.hk2.config.Dom.invokeDuckMethod(Dom.java:943)
        at org.jvnet.hk2.config.Dom.invoke(Dom.java:896)
        at
        org.glassfish.config.support.TranslatedConfigView.invoke(TranslatedConfigView.java:119)
        at $Proxy91.getResourceByName(Unknown Source)
        at
        com.sun.enterprise.connectors.util.ResourcesUtil.getResource(ResourcesUtil.java:1136)
        at
        com.sun.enterprise.connectors.ConnectionManagerImpl.validateResourceAndPool(ConnectionManagerImpl.java:393)
        at
        com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:169)
        at
        com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:163)
        at
        com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:158)
        at com.sun.gjc.spi.base.DataSource.getConnection(DataSource.java:110)

      3)
      java.lang.Thread.State: BLOCKED (on object monitor)
      at
      org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1756)

      • waiting to lock <0x00002aaabe8da1a0> (a
        org.apache.felix.framework.ModuleImpl$ModuleClassLoaderJava5)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at com.sun.hk2.component.LazyInhabitant.loadClass(LazyInhabitant.java:1221)
        at com.sun.hk2.component.LazyInhabitant.type(LazyInhabitant.java:96)
        at org.jvnet.hk2.config.Dom.domNodeByTypeElements(Dom.java:760)
        at org.jvnet.hk2.config.ConfigModel$CollectionNode.get(ConfigModel.java:388)
        at org.jvnet.hk2.config.Dom.getter(Dom.java:955)
        at org.jvnet.hk2.config.ConfigBean._getter(ConfigBean.java:179)
        at org.jvnet.hk2.config.ConfigBean.getter(ConfigBean.java:187)
        at org.jvnet.hk2.config.Dom.invoke(Dom.java:905)
        at
        org.glassfish.config.support.TranslatedConfigView.invoke(TranslatedConfigView.java:119)
        at $Proxy91.getResources(Unknown Source)
        at
        com.sun.enterprise.config.serverbeans.Resources$Duck.getResources(Resources.java:105)

        Issue Links

          Activity

          amitagarwal created issue -
          kenaiadmin made changes -
          Field Original Value New Value
          issue.field.bugzillaimportkey 14454 46058
          made changes -
          Link This issue blocks GLASSFISH-13573 [ GLASSFISH-13573 ]
          made changes -
          Link This issue blocks GLASSFISH-13944 [ GLASSFISH-13944 ]
          deep_singh made changes -
          Tags PSRBUG
          deep_singh made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Joe Di Pol made changes -
          Fix Version/s 3.1_dev [ 17780 ]

            People

            • Assignee:
              Jagadish
              Reporter:
              amitagarwal
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: