Robert Kanter created OOZIE-1140:
------------------------------------
Summary: TestLogStreamer.testStreamLog fails when its started
within the first 4 seconds after the hour
Key: OOZIE-1140
URL: https://issues.apache.org/jira/browse/OOZIE-1140
Project: Oozie
Issue Type: Bug
Components: tests
Reporter: Robert Kanter
Assignee: Robert Kanter
Fix For: trunk
If TestLogStreamer.testStreamLog is started within the first 4 seconds after
the hour (e.g. 3:00:00 - 3:00:04, 4:00:00 - 4:00:04, etc) then it will fail
with this exception:
{code}
junit.framework.AssertionFailedError: expected:<7> but was:<5>
at junit.framework.Assert.fail(Assert.java:50)
at junit.framework.Assert.failNotEquals(Assert.java:287)
at junit.framework.Assert.assertEquals(Assert.java:67)
at junit.framework.Assert.assertEquals(Assert.java:199)
at junit.framework.Assert.assertEquals(Assert.java:205)
at
org.apache.oozie.util.TestLogStreamer.testStreamLog(TestLogStreamer.java:144)
...
{code}
The test creates some log files and sets their modified time based on the
starting time of the test; then it verifies that the right files were picked up
when trying to stream log files from a 5 second window starting 10 seconds
before the starting time of the test. However, for gz files, we use the time
from their name instead of the modified file time, and assume they last for an
hour; but, they don't store second or minute granularity.
So, if the test is started within the first 4 seconds, for example at 8:00:03
on 12/20/2012, then the gz file will be named {{oozie.log-2012-12-20-08.gz}}
and the window we're looking to stream files from is between 7:59:53 and
7:59:58. The start and end times of the gz file would be considered to be
8:00:00 and 9:00:00 respectively, which doesn't overlap with the window (and
the test expects the gz file to fall into the window). If the test is started
after the first 4 seconds, for example at 8:07:00, then the gz file will be
named {{oozie.log-2012-12-20-08.gz}} still, but the window would be 8:06:50 to
8:06:55, which overlaps with the gz file start and end times of 8:00:00 and
9:00:00 (so it works as expected).
One solution is to change the test to use hours instead of seconds for its
window.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira