[
https://issues.apache.org/jira/browse/NIFI-1668?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15302487#comment-15302487
]
ASF GitHub Bot commented on NIFI-1668:
--------------------------------------
Github user markap14 commented on the pull request:
https://github.com/apache/nifi/pull/324#issuecomment-221935156
Agreed - I think moving the FlowController lifecycle to @Before and @After
should address the issues. I do think that the
validateIdempotencyOfProcessorStartOperation() test is a bit odd, though. Lots
of tasks are kicked off in the background, which will test (to some degree)
thread safety. However, if the goal is to test idempotency, then we should just
call the method in the foreground multiple successive times, not run it in the
background.
If the goal is to test running it in the background and the associated
thread-safety, then I'd recommend that rather than using the countdown latch we
just do something like:
```
while (testProcessor.operationNames.isEmpty() ||
testProcNode.getScheduledState() != ScheduledState.RUNNING) {
Thread.sleep(10L);
}
```
And then set a 10-second timeout on the test: @Test(timeout=10000)
> Intermittent Test Failure for TestProcessorLifecycle
> ----------------------------------------------------
>
> Key: NIFI-1668
> URL: https://issues.apache.org/jira/browse/NIFI-1668
> Project: Apache NiFi
> Issue Type: Bug
> Reporter: Bryan Bende
> Assignee: Oleg Zhurakousky
> Priority: Minor
> Fix For: 0.7.0
>
>
> A build on Travis produced the errors below, but they are not seen frequently:
> validateProcessorCanBeStoppedWhenOnTriggerThrowsException on
> validateProcessorCanBeStoppedWhenOnTriggerThrowsException(org.apache.nifi.controller.scheduling.TestProcessorLifecycle)(org.apache.nifi.controller.scheduling.TestProcessorLifecycle)
> Time elapsed: 0.085 sec <<< FAILURE!
> java.nio.channels.OverlappingFileLockException: null
> at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
> at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
> at sun.nio.ch.FileChannelImpl.lock(FileChannelImpl.java:1043)
> at java.nio.channels.FileChannel.lock(FileChannel.java:1052)
> at
> org.wali.MinimalLockingWriteAheadLog.<init>(MinimalLockingWriteAheadLog.java:179)
> at
> org.wali.MinimalLockingWriteAheadLog.<init>(MinimalLockingWriteAheadLog.java:108)
> at
> org.apache.nifi.controller.state.providers.local.WriteAheadLocalStateProvider.init(WriteAheadLocalStateProvider.java:97)
> at
> org.apache.nifi.controller.state.providers.AbstractStateProvider.initialize(AbstractStateProvider.java:34)
> at
> org.apache.nifi.controller.state.manager.StandardStateManagerProvider.createStateProvider(StandardStateManagerProvider.java:186)
> at
> org.apache.nifi.controller.state.manager.StandardStateManagerProvider.createLocalStateProvider(StandardStateManagerProvider.java:80)
> at
> org.apache.nifi.controller.state.manager.StandardStateManagerProvider.create(StandardStateManagerProvider.java:66)
> at
> org.apache.nifi.controller.FlowController.<init>(FlowController.java:435)
> at
> org.apache.nifi.controller.FlowController.createStandaloneInstance(FlowController.java:366)
> at
> org.apache.nifi.controller.scheduling.TestProcessorLifecycle.buildFlowControllerForTest(TestProcessorLifecycle.java:642)
> at
> org.apache.nifi.controller.scheduling.TestProcessorLifecycle.validateProcessorCanBeStoppedWhenOnTriggerThrowsException(TestProcessorLifecycle.java:477)
> Results :
> Failed tests:
>
> TestProcessorLifecycle.validateDisableOperation:117->buildFlowControllerForTest:642
> » OverlappingFileLock
>
> TestProcessorLifecycle.validateLifecycleOperationOrderWithConcurrentCallsToStartStop:254->buildFlowControllerForTest:642
> » OverlappingFileLock
>
> TestProcessorLifecycle.validateProcessScheduledAfterAdministrativeDelayDueToTheOnScheduledException:347->buildFlowControllerForTest:642
> » OverlappingFileLock
>
> TestProcessorLifecycle.validateProcessorCanBeStoppedWhenOnScheduledBlocksIndefinitelyInterruptable:413->buildFlowControllerForTest:642
> » OverlappingFileLock
>
> TestProcessorLifecycle.validateProcessorCanBeStoppedWhenOnScheduledBlocksIndefinitelyUninterruptable:443->buildFlowControllerForTest:642
> » OverlappingFileLock
>
> TestProcessorLifecycle.validateProcessorCanBeStoppedWhenOnScheduledConstantlyFails:380->buildFlowControllerForTest:642
> » OverlappingFileLock
>
> TestProcessorLifecycle.validateProcessorCanBeStoppedWhenOnTriggerThrowsException:477->buildFlowControllerForTest:642
> » OverlappingFileLock
>
> TestProcessorLifecycle.validateProcessorUnscheduledAndStoppedWhenStopIsCalledBeforeProcessorFullyStarted:311->buildFlowControllerForTest:642
> » OverlappingFileLock
>
> TestProcessorLifecycle.validateStartSucceedsOnProcessorWithEnabledService:554->buildFlowControllerForTest:642
> » OverlappingFileLock
>
> TestProcessorLifecycle.validateStopCallsAreMeaninglessIfProcessorNotStarted:187->buildFlowControllerForTest:642
> » OverlappingFileLock
> TestProcessorLifecycle.validateSuccessfullAndOrderlyShutdown:239
> expected:<3> but was:<2>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)