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.
---