[ 
https://issues.apache.org/jira/browse/HADOOP-11771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gopal V updated HADOOP-11771:
-----------------------------
    Description: 
{code}
 IPC Client (1970436060) connection to 
cn106-10.l42scl.hortonworks.com/172.21.128.106:34530 from 
application_1442254312093_2976 [BLOCKED] [DAEMON]
org.apache.hadoop.conf.Configuration.getClassByNameOrNull(String) 
Configuration.java:2117
org.apache.hadoop.conf.Configuration.getClassByName(String) 
Configuration.java:2099
org.apache.hadoop.io.ObjectWritable.loadClass(Configuration, String) 
ObjectWritable.java:373
org.apache.hadoop.io.ObjectWritable.readObject(DataInput, ObjectWritable, 
Configuration) ObjectWritable.java:282
org.apache.hadoop.io.ObjectWritable.readFields(DataInput) ObjectWritable.java:77
org.apache.hadoop.ipc.Client$Connection.receiveRpcResponse() Client.java:1098
org.apache.hadoop.ipc.Client$Connection.run() Client.java:977
{code}


{code}
  private static final Map<ClassLoader, Map<String, WeakReference<Class<?>>>>
    CACHE_CLASSES = new WeakHashMap<ClassLoader, Map<String, 
WeakReference<Class<?>>>>();

...
 synchronized (CACHE_CLASSES) {
      map = CACHE_CLASSES.get(classLoader);
      if (map == null) {
        map = Collections.synchronizedMap(
          new WeakHashMap<String, WeakReference<Class<?>>>());
        CACHE_CLASSES.put(classLoader, map);
      }
    }
{code}

!configuration-sync-cache.png!

!configuration-cache-bt.png!

  was:
{code}
  private static final Map<ClassLoader, Map<String, WeakReference<Class<?>>>>
    CACHE_CLASSES = new WeakHashMap<ClassLoader, Map<String, 
WeakReference<Class<?>>>>();

...
 synchronized (CACHE_CLASSES) {
      map = CACHE_CLASSES.get(classLoader);
      if (map == null) {
        map = Collections.synchronizedMap(
          new WeakHashMap<String, WeakReference<Class<?>>>());
        CACHE_CLASSES.put(classLoader, map);
      }
    }
{code}

!configuration-sync-cache.png!

!configuration-cache-bt.png!


> Configuration::getClassByNameOrNull synchronizes on a static object
> -------------------------------------------------------------------
>
>                 Key: HADOOP-11771
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11771
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: conf, io, ipc
>            Reporter: Gopal V
>            Priority: Critical
>         Attachments: configuration-cache-bt.png, configuration-sync-cache.png
>
>
> {code}
>  IPC Client (1970436060) connection to 
> cn106-10.l42scl.hortonworks.com/172.21.128.106:34530 from 
> application_1442254312093_2976 [BLOCKED] [DAEMON]
> org.apache.hadoop.conf.Configuration.getClassByNameOrNull(String) 
> Configuration.java:2117
> org.apache.hadoop.conf.Configuration.getClassByName(String) 
> Configuration.java:2099
> org.apache.hadoop.io.ObjectWritable.loadClass(Configuration, String) 
> ObjectWritable.java:373
> org.apache.hadoop.io.ObjectWritable.readObject(DataInput, ObjectWritable, 
> Configuration) ObjectWritable.java:282
> org.apache.hadoop.io.ObjectWritable.readFields(DataInput) 
> ObjectWritable.java:77
> org.apache.hadoop.ipc.Client$Connection.receiveRpcResponse() Client.java:1098
> org.apache.hadoop.ipc.Client$Connection.run() Client.java:977
> {code}
> {code}
>   private static final Map<ClassLoader, Map<String, WeakReference<Class<?>>>>
>     CACHE_CLASSES = new WeakHashMap<ClassLoader, Map<String, 
> WeakReference<Class<?>>>>();
> ...
>  synchronized (CACHE_CLASSES) {
>       map = CACHE_CLASSES.get(classLoader);
>       if (map == null) {
>         map = Collections.synchronizedMap(
>           new WeakHashMap<String, WeakReference<Class<?>>>());
>         CACHE_CLASSES.put(classLoader, map);
>       }
>     }
> {code}
> !configuration-sync-cache.png!
> !configuration-cache-bt.png!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to