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

Sascha Coenen commented on HADOOP-11182:
----------------------------------------

Ah. I found the right Unit test class now and moved the new test into that one. 
Resubmitting the patch and keeping my fingers crossed. 
BTW:
I'm still unable to make use of any local patch testing. The run test-patch 
takes like forever and outputs many tests failures but nothing that would 
resemble the QA report. The Jenkins console output doesn't contain any findbug 
warnings. It just says in there that the findbug report got stored as a local 
file on Jenkins which I cannot access.

> GraphiteSink emits wrong timestamps
> -----------------------------------
>
>                 Key: HADOOP-11182
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11182
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 2.5.0, 2.5.1
>            Reporter: Sascha Coenen
>         Attachments: HADOOP-11182-GraphiteSink-v1.patch, 
> HADOOP-11182-v2.patch, HADOOP-11182-v3.patch
>
>
> the org.apache.hadoop.metrics2.sink.GraphiteSink class emits metrics at the 
> configured time period, but the timestamps written only change every 128 
> seconds, even it the configured time period in the configuration file is much 
> shorter.
> This is due to a bug in line 93:
> {code:java}
> 092            // Round the timestamp to second as Graphite accepts it in 
> such format.
> 093            int timestamp = Math.round(record.timestamp() / 1000.0f);
> {code}
> The timestamp property is a long and is divided by a float which yields a 
> result that is not precise enough and yields same valued results for 
> timestamps that lie up to 128 seconds apart. Also, the result is then written 
> into an int variable.
> One solution would be to divide by 1000.0d, but the best fix would be to not 
> even convert to a decimal format in the first place. Instead one could 
> replace the line with the following:
> {code:java}
>    long timestamp = record.timestamp() / 1000L;
> {code}



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

Reply via email to