[ 
https://issues.apache.org/jira/browse/HBASE-30332?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18108191#comment-18108191
 ] 

Hudson commented on HBASE-30332:
--------------------------------

Results for branch branch-2
        [build #133 on 
builds.a.o|https://ci-hbase.apache.org/job/HBase-Integration-Test/job/branch-2/133/]:
 (/) *{color:green}+1 overall{color}*
----
details (if available):



(/) {color:green}+1 client integration test for 2.10.2 {color}


(/) {color:green}+1 client integration test for 3.3.5 {color}
(/) {color:green}+1 client integration test for 3.3.5 with shaded hadoop 
client{color}


(/) {color:green}+1 client integration test for 3.3.6 {color}
(/) {color:green}+1 client integration test for 3.3.6 with shaded hadoop 
client{color}


(/) {color:green}+1 client integration test for 3.4.0 {color}
(/) {color:green}+1 client integration test for 3.4.0 with shaded hadoop 
client{color}


(/) {color:green}+1 client integration test for 3.4.1 {color}
(/) {color:green}+1 client integration test for 3.4.1 with shaded hadoop 
client{color}


(/) {color:green}+1 client integration test for 3.4.2 {color}
(/) {color:green}+1 client integration test for 3.4.2 with shaded hadoop 
client{color}


(/) {color:green}+1 client integration test for 3.4.3 {color}
(/) {color:green}+1 client integration test for 3.4.3 with shaded hadoop 
client{color}


> ProtobufUtil.toResult() silently discards QueryMetrics for empty 
> (row-not-found) results
> ----------------------------------------------------------------------------------------
>
>                 Key: HBASE-30332
>                 URL: https://issues.apache.org/jira/browse/HBASE-30332
>             Project: HBase
>          Issue Type: Bug
>          Components: Client, IPC/RPC
>            Reporter: Abinayaa Tharmmarajhan
>            Assignee: mazhengxuan
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 2.7.0, 3.1.0, 3.0.1, 2.6.8
>
>
> When a {{Get}} is issued with {{setQueryMetricsEnabled(true)}} and the 
> requested row does not exist, the {{{}QueryMetrics{}}}(specifically 
> {{{}blockBytesScanned{}}}) are silently dropped during protobuf 
> serialization. The client always receives {{result.getMetrics() == null}} for 
> missing rows, even though the server did read blocks (bloom filters, index 
> blocks) to determine the row is absent and correctly computed the byte count.
>  
> *Steps to Reproduce*
>  # Issue a {{Get}} against a row that does not exist, with 
> {{get.setQueryMetricsEnabled(true)}}
>  # Check {{result.getMetrics()}} on the returned {{Result}}
>  # Observe {{null}} despite blocks having been read server-side
>  
> *Expected Behavior*
> {{result.getMetrics().getBlockBytesScanned()}} returns the number of bytes 
> read to determine the row is absent — the same as it would for a row that 
> exists.
>  
> *Root cause*
> Based on some analysis, in {{ProtobufUtil.toResult(Result result, boolean 
> encodeTags)}} and {{{}ProtobufUtil.toResultNoData(Result result){}}}, when a 
> result has no cells, the code takes an early-return path that returns one of 
> six pre-built static proto constants. This could be causing the QueryMetrics 
> to be dropped for such cases. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to