[ https://issues.apache.org/jira/browse/OOZIE-2720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15618469#comment-15618469 ]
Satish Subhashrao Saley commented on OOZIE-2720: ------------------------------------------------ In the following code, I looked at log statements and I see that sometimes "Num jobs to materialize" is > 0 (And the job id is same as in the test case), and we enters into the loop. In the loop, we modify last modified time. Then, it just matter of when the update statement gets executed. If it gets executed before we our assert statements in test, test fails. I do not understand the purpose of test fully. But looking at its name "testMaxMatThrottleNotPicked", I think we are testing that actions should not get picked for materialization due to max throttle value. I am putting max throttle as 0, so that no action will get picked for materialization and hence, not modifying the last modified time of job. {code} Class - CoordMaterializeTriggerService.CoordMaterializeTriggerRunnable. private void materializeCoordJobs(Date currDate, int limit, XLog LOG, List<UpdateEntry> updateList) throws JPAExecutorException { try { List<CoordinatorJobBean> materializeJobs = CoordJobQueryExecutor.getInstance().getList( CoordJobQuery.GET_COORD_JOBS_OLDER_FOR_MATERIALIZATION, currDate, limit); LOG.info("CoordMaterializeTriggerService - Curr Date= " + DateUtils.formatDateOozieTZ(currDate) + ", Num jobs to materialize = " + materializeJobs.size()); for (CoordinatorJobBean coordJob : materializeJobs) { Services.get().get(InstrumentationService.class).get() .incr(INSTRUMENTATION_GROUP, INSTR_MAT_JOBS_COUNTER, 1); queueCallable(new CoordMaterializeTransitionXCommand(coordJob.getId(), materializationWindow)); coordJob.setLastModifiedTime(new Date()); updateList.add(new UpdateEntry<CoordJobQuery>(CoordJobQuery.UPDATE_COORD_JOB_LAST_MODIFIED_TIME, coordJob)); //XLog.getLog(getClass()).info("OOZIE job id in mat - = " + coordJob.getId()); //XLog.getLog(getClass()) .info("OOZIE lastModifiedDate in mat = " + coordJob.getLastModifiedTime().getTime()); } } catch (JPAExecutorException jex) { LOG.warn("JPAExecutorException while attempting to materialize coordinator jobs", jex); } } {code} > Test failure - TestCoordMaterializeTriggerService#testMaxMatThrottleNotPicked > ----------------------------------------------------------------------------- > > Key: OOZIE-2720 > URL: https://issues.apache.org/jira/browse/OOZIE-2720 > Project: Oozie > Issue Type: Bug > Reporter: Satish Subhashrao Saley > Assignee: Satish Subhashrao Saley > > Here is the command used to run tests. I wanted to run all the tests without > stopping on failure. > mvn clean > -Djavaagent:/Users/saley/.m2/repository/org/apache/openjpa/openjpa/2.2.2/openjpa-2.2.2.jar > -P hadoop-2 test -fae -Dmaven.test.failure.ignore=true > ------------------------------------------------------------------------------- > Test set: org.apache.oozie.service.TestCoordMaterializeTriggerService > ------------------------------------------------------------------------------- > Tests run: 5, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 14.2 sec <<< > FAILURE! > testMaxMatThrottleNotPicked(org.apache.oozie.service.TestCoordMaterializeTriggerService) > Time elapsed: 0.003 sec <<< FAILURE! > junit.framework.AssertionFailedError: expected:<Fri Oct 28 13:33:38 PDT 2016> > but was:<Fri Oct 28 13:33:40 PDT 2016> > 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:74) > at > org.apache.oozie.service.TestCoordMaterializeTriggerService.testMaxMatThrottleNotPicked(TestCoordMaterializeTriggerService.java:172) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at junit.framework.TestCase.runTest(TestCase.java:168) > at junit.framework.TestCase.runBare(TestCase.java:134) > at junit.framework.TestResult$1.protect(TestResult.java:110) > at junit.framework.TestResult.runProtected(TestResult.java:128) > at junit.framework.TestResult.run(TestResult.java:113) > at junit.framework.TestCase.run(TestCase.java:124) > at junit.framework.TestSuite.runTest(TestSuite.java:243) > at junit.framework.TestSuite.run(TestSuite.java:238) > at > org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83) > at org.junit.runners.Suite.runChild(Suite.java:128) > at org.junit.runners.Suite.runChild(Suite.java:24) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) -- This message was sent by Atlassian JIRA (v6.3.4#6332)