[jira] [Commented] (HADOOP-16461) Regression: FileSystem cache lock parses XML within the lock
[ https://issues.apache.org/jira/browse/HADOOP-16461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16941416#comment-16941416 ] Wei-Chiu Chuang commented on HADOOP-16461: -- Commit applies to branch-3.2 and branch-3.1. I'll cherry pick the commit into these two branches. > Regression: FileSystem cache lock parses XML within the lock > > > Key: HADOOP-16461 > URL: https://issues.apache.org/jira/browse/HADOOP-16461 > Project: Hadoop Common > Issue Type: Bug > Components: fs >Affects Versions: 3.3.0 >Reporter: Gopal Vijayaraghavan >Assignee: Gopal Vijayaraghavan >Priority: Major > Fix For: 3.3.0 > > > https://github.com/apache/hadoop/blob/2546e6ece240924af2188bb39b3954a4896e4a4f/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java#L3388 > {code} > fs = createFileSystem(uri, conf); > synchronized (this) { // refetch the lock again > FileSystem oldfs = map.get(key); > if (oldfs != null) { // a file system is created while lock is > releasing > fs.close(); // close the new file system > return oldfs; // return the old file system > } > // now insert the new file system into the map > if (map.isEmpty() > && !ShutdownHookManager.get().isShutdownInProgress()) { > ShutdownHookManager.get().addShutdownHook(clientFinalizer, > SHUTDOWN_HOOK_PRIORITY); > } > fs.key = key; > map.put(key, fs); > if (conf.getBoolean( > FS_AUTOMATIC_CLOSE_KEY, FS_AUTOMATIC_CLOSE_DEFAULT)) { > toAutoClose.add(key); > } > return fs; > } > {code} > The lock now has a ShutdownHook creation, which ends up doing > https://github.com/apache/hadoop/blob/2546e6ece240924af2188bb39b3954a4896e4a4f/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ShutdownHookManager.java#L205 > {code} > HookEntry(Runnable hook, int priority) { > this(hook, priority, > getShutdownTimeout(new Configuration()), > TIME_UNIT_DEFAULT); > } > {code} > which ends up doing a "new Configuration()" within the locked section. > This indirectly hurts the cache hit scenarios as well, since if the lock on > this is held, then the other section cannot be entered either. > https://github.com/apache/tez/blob/master/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/sort/impl/TezSpillRecord.java#L65 > {code} > I/O Setup 0 State: BLOCKED CPU usage on sample: 6ms > org.apache.hadoop.fs.FileSystem$Cache.getInternal(URI, Configuration, > FileSystem$Cache$Key) FileSystem.java:3345 > org.apache.hadoop.fs.FileSystem$Cache.get(URI, Configuration) > FileSystem.java:3320 > org.apache.hadoop.fs.FileSystem.get(URI, Configuration) FileSystem.java:479 > org.apache.hadoop.fs.FileSystem.getLocal(Configuration) FileSystem.java:435 > {code} > slowing down the RawLocalFileSystem when there are other threads creating > HDFS FileSystem objects at the same time. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org
[jira] [Commented] (HADOOP-16461) Regression: FileSystem cache lock parses XML within the lock
[ https://issues.apache.org/jira/browse/HADOOP-16461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16893714#comment-16893714 ] Hudson commented on HADOOP-16461: - FAILURE: Integrated in Jenkins build Hadoop-trunk-Commit #16992 (See [https://builds.apache.org/job/Hadoop-trunk-Commit/16992/]) HADOOP-16461. Regression: FileSystem cache lock parses XML within the (stevel: rev aebac6d2d2e612e400a7d73be67dafb47e239211) * (edit) hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java > Regression: FileSystem cache lock parses XML within the lock > > > Key: HADOOP-16461 > URL: https://issues.apache.org/jira/browse/HADOOP-16461 > Project: Hadoop Common > Issue Type: Bug > Components: filecache >Reporter: Gopal V >Assignee: Gopal V >Priority: Major > > https://github.com/apache/hadoop/blob/2546e6ece240924af2188bb39b3954a4896e4a4f/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java#L3388 > {code} > fs = createFileSystem(uri, conf); > synchronized (this) { // refetch the lock again > FileSystem oldfs = map.get(key); > if (oldfs != null) { // a file system is created while lock is > releasing > fs.close(); // close the new file system > return oldfs; // return the old file system > } > // now insert the new file system into the map > if (map.isEmpty() > && !ShutdownHookManager.get().isShutdownInProgress()) { > ShutdownHookManager.get().addShutdownHook(clientFinalizer, > SHUTDOWN_HOOK_PRIORITY); > } > fs.key = key; > map.put(key, fs); > if (conf.getBoolean( > FS_AUTOMATIC_CLOSE_KEY, FS_AUTOMATIC_CLOSE_DEFAULT)) { > toAutoClose.add(key); > } > return fs; > } > {code} > The lock now has a ShutdownHook creation, which ends up doing > https://github.com/apache/hadoop/blob/2546e6ece240924af2188bb39b3954a4896e4a4f/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ShutdownHookManager.java#L205 > {code} > HookEntry(Runnable hook, int priority) { > this(hook, priority, > getShutdownTimeout(new Configuration()), > TIME_UNIT_DEFAULT); > } > {code} > which ends up doing a "new Configuration()" within the locked section. > This indirectly hurts the cache hit scenarios as well, since if the lock on > this is held, then the other section cannot be entered either. > https://github.com/apache/tez/blob/master/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/sort/impl/TezSpillRecord.java#L65 > {code} > I/O Setup 0 State: BLOCKED CPU usage on sample: 6ms > org.apache.hadoop.fs.FileSystem$Cache.getInternal(URI, Configuration, > FileSystem$Cache$Key) FileSystem.java:3345 > org.apache.hadoop.fs.FileSystem$Cache.get(URI, Configuration) > FileSystem.java:3320 > org.apache.hadoop.fs.FileSystem.get(URI, Configuration) FileSystem.java:479 > org.apache.hadoop.fs.FileSystem.getLocal(Configuration) FileSystem.java:435 > {code} > slowing down the RawLocalFileSystem when there are other threads creating > HDFS FileSystem objects at the same time. -- This message was sent by Atlassian JIRA (v7.6.14#76016) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org
[jira] [Commented] (HADOOP-16461) Regression: FileSystem cache lock parses XML within the lock
[ https://issues.apache.org/jira/browse/HADOOP-16461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16892278#comment-16892278 ] Gopal V commented on HADOOP-16461: -- Linked the lines up and opened a PR. > Regression: FileSystem cache lock parses XML within the lock > > > Key: HADOOP-16461 > URL: https://issues.apache.org/jira/browse/HADOOP-16461 > Project: Hadoop Common > Issue Type: Bug > Components: filecache >Reporter: Gopal V >Assignee: Gopal V >Priority: Major > > https://github.com/apache/hadoop/blob/2546e6ece240924af2188bb39b3954a4896e4a4f/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java#L3388 > {code} > fs = createFileSystem(uri, conf); > synchronized (this) { // refetch the lock again > FileSystem oldfs = map.get(key); > if (oldfs != null) { // a file system is created while lock is > releasing > fs.close(); // close the new file system > return oldfs; // return the old file system > } > // now insert the new file system into the map > if (map.isEmpty() > && !ShutdownHookManager.get().isShutdownInProgress()) { > ShutdownHookManager.get().addShutdownHook(clientFinalizer, > SHUTDOWN_HOOK_PRIORITY); > } > fs.key = key; > map.put(key, fs); > if (conf.getBoolean( > FS_AUTOMATIC_CLOSE_KEY, FS_AUTOMATIC_CLOSE_DEFAULT)) { > toAutoClose.add(key); > } > return fs; > } > {code} > The lock now has a ShutdownHook creation, which ends up doing > https://github.com/apache/hadoop/blob/2546e6ece240924af2188bb39b3954a4896e4a4f/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ShutdownHookManager.java#L205 > {code} > HookEntry(Runnable hook, int priority) { > this(hook, priority, > getShutdownTimeout(new Configuration()), > TIME_UNIT_DEFAULT); > } > {code} > which ends up doing a "new Configuration()" within the locked section. > This indirectly hurts the cache hit scenarios as well, since if the lock on > this is held, then the other section cannot be entered either. > https://github.com/apache/tez/blob/master/tez-runtime-library/src/main/java/org/apache/tez/runtime/library/common/sort/impl/TezSpillRecord.java#L65 > {code} > I/O Setup 0 State: BLOCKED CPU usage on sample: 6ms > org.apache.hadoop.fs.FileSystem$Cache.getInternal(URI, Configuration, > FileSystem$Cache$Key) FileSystem.java:3345 > org.apache.hadoop.fs.FileSystem$Cache.get(URI, Configuration) > FileSystem.java:3320 > org.apache.hadoop.fs.FileSystem.get(URI, Configuration) FileSystem.java:479 > org.apache.hadoop.fs.FileSystem.getLocal(Configuration) FileSystem.java:435 > {code} > slowing down the RawLocalFileSystem when there are other threads creating > HDFS FileSystem objects at the same time. -- This message was sent by Atlassian JIRA (v7.6.14#76016) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org
[jira] [Commented] (HADOOP-16461) Regression: FileSystem cache lock parses XML within the lock
[ https://issues.apache.org/jira/browse/HADOOP-16461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16892245#comment-16892245 ] Steve Loughran commented on HADOOP-16461: - gopal, can you give us files & lines rather than just code snippets. thanks > Regression: FileSystem cache lock parses XML within the lock > > > Key: HADOOP-16461 > URL: https://issues.apache.org/jira/browse/HADOOP-16461 > Project: Hadoop Common > Issue Type: Bug > Components: filecache >Reporter: Gopal V >Assignee: Gopal V >Priority: Major > > {code} > fs = createFileSystem(uri, conf); > synchronized (this) { // refetch the lock again > FileSystem oldfs = map.get(key); > if (oldfs != null) { // a file system is created while lock is > releasing > fs.close(); // close the new file system > return oldfs; // return the old file system > } > // now insert the new file system into the map > if (map.isEmpty() > && !ShutdownHookManager.get().isShutdownInProgress()) { > ShutdownHookManager.get().addShutdownHook(clientFinalizer, > SHUTDOWN_HOOK_PRIORITY); > } > fs.key = key; > map.put(key, fs); > if (conf.getBoolean( > FS_AUTOMATIC_CLOSE_KEY, FS_AUTOMATIC_CLOSE_DEFAULT)) { > toAutoClose.add(key); > } > return fs; > } > {code} > The lock now has a ShutdownHook creation, which ends up doing > {code} > HookEntry(Runnable hook, int priority) { > this(hook, priority, > getShutdownTimeout(new Configuration()), > TIME_UNIT_DEFAULT); > } > {code} > which ends up doing a "new Configuration()" within the locked section. > This indirectly hurts the cache hit scenarios as well, since if the lock on > this is held, then the other section cannot be entered either. > {code} > I/O Setup 0 State: BLOCKED CPU usage on sample: 6ms > org.apache.hadoop.fs.FileSystem$Cache.getInternal(URI, Configuration, > FileSystem$Cache$Key) FileSystem.java:3345 > org.apache.hadoop.fs.FileSystem$Cache.get(URI, Configuration) > FileSystem.java:3320 > org.apache.hadoop.fs.FileSystem.get(URI, Configuration) FileSystem.java:479 > org.apache.hadoop.fs.FileSystem.getLocal(Configuration) FileSystem.java:435 > {code} > slowing down the RawLocalFileSystem when there are other threads creating > HDFS FileSystem objects at the same time. -- This message was sent by Atlassian JIRA (v7.6.14#76016) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org