Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-21353

TestHBCKCommandLineParsing#testCommandWithOptions hangs on call to HBCK2#checkHBCKSupport

    XMLWordPrintableJSON

Details

    Description

      I noticed the following when running TestHBCKCommandLineParsing#testCommandWithOptions :

      "main" #1 prio=5 os_prio=31 tid=0x00007f851c800000 nid=0x1703 waiting on condition [0x0000700000216000]
         java.lang.Thread.State: WAITING (parking)
      	at sun.misc.Unsafe.park(Native Method)
      	- parking to wait for  <0x000000076d3055d8> (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:1693)
      	at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3323)
      	at java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1729)
      	at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
      	at org.apache.hadoop.hbase.client.ConnectionImplementation.retrieveClusterId(ConnectionImplementation.java:564)
      	at org.apache.hadoop.hbase.client.ConnectionImplementation.<init>(ConnectionImplementation.java:297)
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
      	at org.apache.hadoop.hbase.client.ConnectionFactory.lambda$createConnection$0(ConnectionFactory.java:229)
      	at org.apache.hadoop.hbase.client.ConnectionFactory$$Lambda$11/502838712.run(Unknown Source)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at javax.security.auth.Subject.doAs(Subject.java:422)
      	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1686)
      	at org.apache.hadoop.hbase.security.User$SecureHadoopUser.runAs(User.java:347)
      	at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:227)
      	at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:127)
      	at org.apache.hbase.HBCK2.checkHBCKSupport(HBCK2.java:93)
      	at org.apache.hbase.HBCK2.run(HBCK2.java:352)
      	at org.apache.hbase.TestHBCKCommandLineParsing.testCommandWithOptions(TestHBCKCommandLineParsing.java:62)
      

      The test doesn't spin up hbase cluster.
      Hence the call to check hbck support hangs.

      In HBCK2#run, we can refactor the code such that argument parsing is done prior to calling HBCK2#checkHBCKSupport .

      Attachments

        Activity

          People

            stack Michael Stack
            yuzhihong@gmail.com Ted Yu
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: