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

HConnection stuck with UnknownHostException

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 0.98.8
    • None
    • None
    • None

    Description

      when put/get from hbase, if we meet a temporary dns failure causes resolve RS's host, the error will never recovered. put/get will failed with UnknownHostException forever.

      I checked the code, and the reason maybe:
      1. when RegionServerCallable or MultiServerCallable prepare(), it gets a ClientService.BlockingInterface stub from Hconnection
      2. In HConnectionImplementation::getClient, it caches the stub with a BlockingRpcChannelImplementation
      3. In BlockingRpcChannelImplementation(),
      this.isa = new InetSocketAddress(sn.getHostname(), sn.getPort()); If we meet a temporary dns failure then the "address" in isa will be null.
      4. then we launch the real rpc call, the following stack is:
      Caused by: java.net.UnknownHostException: unknown host: xxx.host2
      at org.apache.hadoop.hbase.ipc.RpcClient$Connection.<init>(RpcClient.java:385)
      at org.apache.hadoop.hbase.ipc.RpcClient.createConnection(RpcClient.java:351)
      at org.apache.hadoop.hbase.ipc.RpcClient.getConnection(RpcClient.java:1523)
      at org.apache.hadoop.hbase.ipc.RpcClient.call(RpcClient.java:1435)
      at org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1654)
      at org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1712)

      Besides, i noticed there is a protection in RpcClient:
      if (remoteId.getAddress().isUnresolved())

      { throw new UnknownHostException("unknown host: " + remoteId.getAddress().getHostName()); }

      shouldn't we do something when this situation occurred?

      Attachments

        1. HBASE-13960-0.98-v1.patch
          11 kB
          Kurt Young
        2. HBASE-13960-update.patch
          11 kB
          Yu Li
        3. HBASE-13960-update.v2.patch
          13 kB
          Yu Li
        4. HBASE-13960-v2.patch
          11 kB
          Kurt Young

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ykt836 Kurt Young
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: