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

Mingliang Liu updated HDFS-9484:
--------------------------------
    Description: 
There are two potential bugs that make the 
{{NNThroughputBenchmark$BlockReportStats}} send empty block reports.
# In {{NNThroughputBenchmark$BlockReportStats#formBlockReport()}}, the 
{{blockReportList}} is always {{BlockListAsLongs.EMPTY}}. We should construct 
the block report list by encoding generated {{blocks}} in test.
# {{TinyDatanode#blocks}} is an empty ArrayList with initial capacity. In 
{{TinyDatanode#addBlock()}} first statement, the {{if(nrBlocks == 
blocks.size()) {}} will always be true. We should either fill the blocks with 
dummy report in {{TinyDatanode()}} constructor, or use initial capacity instead 
of {{blocks.size()}} in the above _if_ statement (we should replace 
{{ArrayList#set}} with {{ArrayList#add}} as well).


  was:
In {{NNThroughputBenchmark$BlockReportStats#formBlockReport()}}, the 
{{blockReportList}} is always {{BlockListAsLongs.EMPTY}}. We should construct 
the block report list by encoding generated {{blocks}} in test.

Meanwhile, {{TinyDatanode#blocks}} is an empty ArrayList with initial capacity. 
In {{TinyDatanode#addBlock()}} first statement, the {{if(nrBlocks == 
blocks.size()) {}} will always be true. We should either fill the blocks with 
dummy report in {{TinyDatanode()}} constructor, or use initial capacity instead 
of {{blocks.size()}} in the above _if_ statement (we should replace 
ArrayList#set with ArrayList#add as well).

There are two potential bugs that make the 


> NNThroughputBenchmark$BlockReportStats should not send empty block reports
> --------------------------------------------------------------------------
>
>                 Key: HDFS-9484
>                 URL: https://issues.apache.org/jira/browse/HDFS-9484
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: test
>            Reporter: Mingliang Liu
>            Assignee: Mingliang Liu
>
> There are two potential bugs that make the 
> {{NNThroughputBenchmark$BlockReportStats}} send empty block reports.
> # In {{NNThroughputBenchmark$BlockReportStats#formBlockReport()}}, the 
> {{blockReportList}} is always {{BlockListAsLongs.EMPTY}}. We should construct 
> the block report list by encoding generated {{blocks}} in test.
> # {{TinyDatanode#blocks}} is an empty ArrayList with initial capacity. In 
> {{TinyDatanode#addBlock()}} first statement, the {{if(nrBlocks == 
> blocks.size()) {}} will always be true. We should either fill the blocks with 
> dummy report in {{TinyDatanode()}} constructor, or use initial capacity 
> instead of {{blocks.size()}} in the above _if_ statement (we should replace 
> {{ArrayList#set}} with {{ArrayList#add}} as well).



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

Reply via email to