[ https://issues.apache.org/jira/browse/HDFS-12748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16880600#comment-16880600 ]
Erik Krogen edited comment on HDFS-12748 at 7/8/19 6:13 PM: ------------------------------------------------------------ Sorry for my late reply; I was on vacation last week. The changes seem fine to me. Thanks for handling this [~cheersyang]! I am happy to help with reviews for backports. Can we go at least back to {{branch-2}} and probably {{branch-2.8}} as well? was (Author: xkrogen): Sorry for my late reply; I was on vacation last week. The changes seem fine to me. Thanks for handling this [~cheersyang]! I am happy to help with reviews for backports. Can we go at least back to {{branch-2}}? > NameNode memory leak when accessing webhdfs GETHOMEDIRECTORY > ------------------------------------------------------------ > > Key: HDFS-12748 > URL: https://issues.apache.org/jira/browse/HDFS-12748 > Project: Hadoop HDFS > Issue Type: Bug > Components: hdfs > Affects Versions: 2.8.2 > Reporter: Jiandan Yang > Assignee: Weiwei Yang > Priority: Major > Fix For: 3.3.0, 3.2.1 > > Attachments: HDFS-12748.001.patch, HDFS-12748.002.patch, > HDFS-12748.003.patch, HDFS-12748.004.patch, HDFS-12748.005.patch > > > In our production environment, the standby NN often do fullgc, through mat we > found the largest object is FileSystem$Cache, which contains 7,844,890 > DistributedFileSystem. > By view hierarchy of method FileSystem.get() , I found only > NamenodeWebHdfsMethods#get call FileSystem.get(). I don't know why creating > different DistributedFileSystem every time instead of get a FileSystem from > cache. > {code:java} > case GETHOMEDIRECTORY: { > final String js = JsonUtil.toJsonString("Path", > FileSystem.get(conf != null ? conf : new Configuration()) > .getHomeDirectory().toUri().getPath()); > return Response.ok(js).type(MediaType.APPLICATION_JSON).build(); > } > {code} > When we close FileSystem when GETHOMEDIRECTORY, NN don't do fullgc. > {code:java} > case GETHOMEDIRECTORY: { > FileSystem fs = null; > try { > fs = FileSystem.get(conf != null ? conf : new Configuration()); > final String js = JsonUtil.toJsonString("Path", > fs.getHomeDirectory().toUri().getPath()); > return Response.ok(js).type(MediaType.APPLICATION_JSON).build(); > } finally { > if (fs != null) { > fs.close(); > } > } > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org