You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Heng Chen (JIRA)" <ji...@apache.org> on 2015/10/21 11:42:27 UTC

[jira] [Created] (HBASE-14662) Fix NPE in HFileOutputFormat2

Heng Chen created HBASE-14662:
---------------------------------

             Summary: Fix NPE in HFileOutputFormat2
                 Key: HBASE-14662
                 URL: https://issues.apache.org/jira/browse/HBASE-14662
             Project: HBase
          Issue Type: Bug
            Reporter: Heng Chen


When i dig in HBASE-14659,  i run testWritingPEData. There are a lot of NPE thrown and testcase run a long time. 

The reason is that, in {{HFileOutputFormat2}}
{code}
            HRegionLocation loc = null;
            String tableName = conf.get(OUTPUT_TABLE_NAME_CONF_KEY);

            try (Connection connection = ConnectionFactory.createConnection(conf);
                   RegionLocator locator =
                     connection.getRegionLocator(TableName.valueOf(tableName))) {
              loc = locator.getRegionLocation(rowKey);
            } catch (Throwable e) {
              LOG.warn("there's something wrong when locating rowkey: " +
                Bytes.toString(rowKey), e);
              loc = null;
            }
{code}

Because we did not set {{OUTPUT_TABLE_NAME_CONF_KEY}}, So tableName is null,  So NPE thrown.

And RegionLocator will create connection which RegionLocator use to find region location. Because zk is not start in this testcase, So it will retry many times. 

But all this actions is nesseray,  we can skip create connection by check whether tableName is null





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)