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

    https://github.com/apache/helix/pull/32#discussion_r35688395
  
    --- Diff: 
helix-core/src/main/java/org/apache/helix/controller/stages/ExternalViewComputeStage.java
 ---
    @@ -131,20 +133,30 @@ public void process(ClusterEvent event) throws 
Exception {
     
           // compare the new external view with current one, set only on 
different
           if (curExtView == null || 
!curExtView.getRecord().equals(view.getRecord())) {
    -        keys.add(keyBuilder.externalView(resourceName));
    -        newExtViews.add(view);
    +
    +        // For the resource with DisableExternalView option turned on in 
IdealState
    +        // We still compute externalView in above code for verifying and 
reporting cluster/resource status purpose.
    +        // But we will not actually create or write the externalView to 
ZooKeeper.
    +        if (idealState != null && idealState.isExternalViewDisabled()) {
    --- End diff --
    
    This logic will not work when idealstate is deleted. Basically idealstate 
will be null and in the else path we end up creating the external view. This is 
opposite of what we want.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to