[ https://issues.apache.org/jira/browse/HIVE-26495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17609601#comment-17609601 ]
Naresh P R commented on HIVE-26495: ----------------------------------- Thank you for the the review & merge [~srahman] [~ayushtkn] > MSCK repair perf issue HMSChecker ThreadPool is blocked at fs.listStatus > ------------------------------------------------------------------------ > > Key: HIVE-26495 > URL: https://issues.apache.org/jira/browse/HIVE-26495 > Project: Hive > Issue Type: Bug > Reporter: Naresh P R > Assignee: Naresh P R > Priority: Major > Labels: pull-request-available > Fix For: 4.0.0-alpha-2 > > Time Spent: 2h > Remaining Estimate: 0h > > With hive.metastore.fshandler.threads = 15, all 15 *MSCK-GetPaths-xx* are > slogging at following trace. > {code:java} > "MSCK-GetPaths-11" #12345 daemon prio=5 os_prio=0 tid= nid= waiting on > condition [0x00007f9f099a6000] > java.lang.Thread.State: WAITING (parking) > at sun.misc.Unsafe.park(Native Method) > - parking to wait for <0x00000003f92d1668> (a > java.util.concurrent.CompletableFuture$Signaller) > at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) > at > java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1707) > at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3323) > ... > at org.apache.hadoop.fs.s3a.S3AFileSystem.listStatus(S3AFileSystem.java:3230) > at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1953) > at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1995) > at > org.apache.hadoop.hive.metastore.HiveMetaStoreChecker$PathDepthInfoCallable.processPathDepthInfo(HiveMetaStoreChecker.java:550) > at > org.apache.hadoop.hive.metastore.HiveMetaStoreChecker$PathDepthInfoCallable.call(HiveMetaStoreChecker.java:543) > at > org.apache.hadoop.hive.metastore.HiveMetaStoreChecker$PathDepthInfoCallable.call(HiveMetaStoreChecker.java:525) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:750){code} > We should take advantage of non-block listStatusIterator instead of > listStatus which is a blocking call. -- This message was sent by Atlassian Jira (v8.20.10#820010)