nifi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (NIFI-1164) Race condition during initialization of ControllerServices - (part due)
Date Mon, 16 Nov 2015 20:14:11 GMT

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

ASF GitHub Bot commented on NIFI-1164:
--------------------------------------

Github user olegz commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/126#discussion_r44976221
  
    --- Diff: nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java
---
    @@ -545,23 +546,16 @@ public void enableReferencingServices(final ControllerServiceNode
serviceNode) {
         }
     
         private void enableReferencingServices(final ControllerServiceNode serviceNode, final
List<ControllerServiceNode> recursiveReferences) {
    -        if (serviceNode.getState() != ControllerServiceState.ENABLED && serviceNode.getState()
!= ControllerServiceState.ENABLING) {
    +        if (serviceNode.getState() != ControllerServiceState.ENABLING && serviceNode.getState()
!= ControllerServiceState.ENABLED) {
                 serviceNode.verifyCanEnable(new HashSet<>(recursiveReferences));
             }
     
             final Set<ControllerServiceNode> ifEnabled = new HashSet<>();
    -        final List<ControllerServiceNode> toEnable = findRecursiveReferences(serviceNode,
ControllerServiceNode.class);
    -        for (final ControllerServiceNode nodeToEnable : toEnable) {
    +        for (final ControllerServiceNode nodeToEnable : recursiveReferences) {
                 final ControllerServiceState state = nodeToEnable.getState();
    -            if (state != ControllerServiceState.ENABLED && state != ControllerServiceState.ENABLING)
{
    +            if (state != ControllerServiceState.ENABLING && state != ControllerServiceState.ENABLED)
{
                     nodeToEnable.verifyCanEnable(ifEnabled);
                     ifEnabled.add(nodeToEnable);
    -            }
    -        }
    -
    -        for (final ControllerServiceNode nodeToEnable : toEnable) {
    --- End diff --
    
    I see your point, let me put it back and I'll document it in code as well


> Race condition during initialization of ControllerServices - (part due)
> -----------------------------------------------------------------------
>
>                 Key: NIFI-1164
>                 URL: https://issues.apache.org/jira/browse/NIFI-1164
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>    Affects Versions: 0.3.0
>            Reporter: Oleg Zhurakousky
>            Assignee: Oleg Zhurakousky
>             Fix For: 0.4.0
>
>
> Similar to NIFI-1143, but the exception is happening in the different place
> {code}testConcurrencyWithEnablingReferencingServicesGraph(org.apache.nifi.controller.service.TestStandardControllerServiceProvider)
 Time elapsed: 0.162 sec  <<< ERROR!
> java.lang.IllegalStateException: ServiceB[id=4] cannot be enabled because it is not disabled
> at org.apache.nifi.controller.service.StandardControllerServiceNode.verifyCanEnable(StandardControllerServiceNode.java:183)
> at org.apache.nifi.controller.service.StandardControllerServiceProvider.enableReferencingServices(StandardControllerServiceProvider.java:549)
> at org.apache.nifi.controller.service.StandardControllerServiceProvider.enableReferencingServices(StandardControllerServiceProvider.java:544)
> at org.apache.nifi.controller.service.TestStandardControllerServiceProvider.testEnableReferencingServicesGraph(TestStandardControllerServiceProvider.java:154)
> at org.apache.nifi.controller.service.TestStandardControllerServiceProvider.testConcurrencyWithEnablingReferencingServicesGraph(TestStandardControllerServiceProvider.java:124)
> {code}



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

Mime
View raw message