hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wang, Xinglong (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-19750) print pretty rowkey in getExceptionMessageAdditionalDetail
Date Wed, 10 Jan 2018 14:28:02 GMT

     [ https://issues.apache.org/jira/browse/HBASE-19750?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Wang, Xinglong updated HBASE-19750:
-----------------------------------
    Status: Patch Available  (was: Open)

> print pretty rowkey in getExceptionMessageAdditionalDetail
> ----------------------------------------------------------
>
>                 Key: HBASE-19750
>                 URL: https://issues.apache.org/jira/browse/HBASE-19750
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client
>            Reporter: Wang, Xinglong
>            Assignee: Wang, Xinglong
>            Priority: Minor
>         Attachments: HBASE-19750.001.patch, HBASE-19750.002.patch, HBASE-19750.003.patch
>
>
> Sometimes the rowkey is binary format and is not able to print out human readable string.
In this case, the exception will still try to call the toString() method and result in something
like '�\(�\'. 
> It will be very inefficient to trouble shooting the issue when we get such kind of exception.
We can't identify the problematic row key based on the printout. 
> The idea here is that print out the rowkey use Bytes.toStringBinary() in additional with
Bytes.toString(row). 
> If the row is serialized from human readable string, then Bytes.toString(row) makes more
sense. When it's from human unreadable string, then Bytes.toStringBinary(row) will help.
> The output of Bytes.toStringBinary(row) anyway can be applied to hbase shell to do the
scan so that we can easily identify the corresponding row.
> {code:java}
> 2017-12-16 07:25:41,304 INFO [main] org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl:
recovered from org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=36,
exceptions:
> Sat Dec 16 07:25:41 GMT-07:00 2017, null, java.net.SocketTimeoutException: callTimeout=250000,
callDuration=250473: row '�\(�\' on table 'mytable' at region=mytable,\xDF\x5C(\xF5\xC2\x8F\x5C\x1B,1412216342143.5d74ce411eecd40001d9bf6e62f0b607.,
hostname=mycluster.internal.xx.com,60020,1503881012672, seqNum=6265890293
> 	at org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.throwEnrichedException(RpcRetryingCallerWithReadReplicas.java:271)
> 	at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:203)
> 	at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:60)
> 	at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
> 	at org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:320)
> 	at org.apache.hadoop.hbase.client.ClientScanner.loadCache(ClientScanner.java:403)
> 	at org.apache.hadoop.hbase.client.ClientScanner.next(ClientScanner.java:364)
> 	at org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.nextKeyValue(TableRecordReaderImpl.java:205)
> 	at org.apache.hadoop.hbase.mapreduce.TableRecordReader.nextKeyValue(TableRecordReader.java:147)
> 	at org.apache.hadoop.hbase.mapreduce.TableInputFormatBase$1.nextKeyValue(TableInputFormatBase.java:216)
> 	at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:556)
> 	at org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80)
> 	at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91)
> 	at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
> 	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787)
> 	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
> 	at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
> 	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:1709)
> 	at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
> {code}
> Current code:
> RegionServerCallable.java
> {code:java}
>  public String getExceptionMessageAdditionalDetail() {
>     return "row '" + Bytes.toString(row) + "' on table '" + tableName + "' at " + location;
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message