hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Walter Su (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HDFS-9772) TestBlockReplacement#testThrottler doesn't work as expected
Date Wed, 13 Apr 2016 10:01:25 GMT

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

Walter Su updated HDFS-9772:
----------------------------
    Summary: TestBlockReplacement#testThrottler doesn't work as expected  (was: TestBlockReplacement#testThrottler
use falut variable to calculate bandwidth)

> TestBlockReplacement#testThrottler doesn't work as expected
> -----------------------------------------------------------
>
>                 Key: HDFS-9772
>                 URL: https://issues.apache.org/jira/browse/HDFS-9772
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 2.7.1
>            Reporter: Lin Yiqun
>            Assignee: Lin Yiqun
>         Attachments: HDFS.001.patch
>
>
> In {{TestBlockReplacement#testThrottler}}, it use a fault variable to calculate the ended
bandwidth. It use variable {{totalBytes}} rathe than final variable {{TOTAL_BYTES}}. And the
value of {{TOTAL_BYTES}} is set to {{bytesToSend}}. The {{totalBytes}} looks no meaning here
and this will make {{totalBytes*1000/(end-start)}} always be 0 and the comparison always true.
The method code is below:
> {code}
> @Test
>   public void testThrottler() throws IOException {
>     Configuration conf = new HdfsConfiguration();
>     FileSystem.setDefaultUri(conf, "hdfs://localhost:0");
>     long bandwidthPerSec = 1024*1024L;
>     final long TOTAL_BYTES =6*bandwidthPerSec; 
>     long bytesToSend = TOTAL_BYTES; 
>     long start = Time.monotonicNow();
>     DataTransferThrottler throttler = new DataTransferThrottler(bandwidthPerSec);
>     long totalBytes = 0L;
>     long bytesSent = 1024*512L; // 0.5MB
>     throttler.throttle(bytesSent);
>     bytesToSend -= bytesSent;
>     bytesSent = 1024*768L; // 0.75MB
>     throttler.throttle(bytesSent);
>     bytesToSend -= bytesSent;
>     try {
>       Thread.sleep(1000);
>     } catch (InterruptedException ignored) {}
>     throttler.throttle(bytesToSend);
>     long end = Time.monotonicNow();
>     assertTrue(totalBytes*1000/(end-start)<=bandwidthPerSec);
>   }
> {code}



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

Mime
View raw message