{"record":{"id":"292937f801e7d654","repo":"apache/druid","slug":"ignored-event-type-s-for-node-watcher-of-role","errorCode":null,"errorMessage":"Ignored event type [%s] for node watcher of role [%s].","messagePattern":"Ignored event type \\[(.+?)\\] for node watcher of role \\[(.+?)\\]\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"server/src/main/java/org/apache/druid/curator/discovery/CuratorDruidNodeDiscoveryProvider.java","lineNumber":249,"sourceCode":"    void handleChildEvent(PathChildrenCacheEvent event)\n    {\n      synchronized (lock) {\n        try {\n          switch (event.getType()) {\n            case CHILD_ADDED: {\n              childAdded(event);\n              break;\n            }\n            case CHILD_REMOVED: {\n              childRemoved(event);\n              break;\n            }\n            case INITIALIZED: {\n              baseNodeRoleWatcher.cacheInitialized();\n              break;\n            }\n            default: {\n              log.warn(\"Ignored event type [%s] for node watcher of role [%s].\", event.getType(), nodeRole.getJsonName());\n            }\n          }\n        }\n        catch (Exception ex) {\n          log.error(ex, \"Unknown error in node watcher of role [%s].\", nodeRole.getJsonName());\n        }\n      }\n    }\n\n    @GuardedBy(\"lock\")\n    private void childAdded(PathChildrenCacheEvent event) throws IOException\n    {\n      final byte[] data = getZkDataForNode(event.getData());\n      if (data == null) {\n        log.error(\n            \"Failed to get data for path [%s]. Ignoring a child addition event.\",\n            event.getData().getPath()\n        );","sourceCodeStart":231,"sourceCodeEnd":267,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/server/src/main/java/org/apache/druid/curator/discovery/CuratorDruidNodeDiscoveryProvider.java#L231-L267","documentation":"CuratorDruidNodeDiscoveryProvider's NodeRoleWatcher handleChildEvent received a Curator PathChildrenCacheEvent whose type is not one of the handled types (CHILD_ADDED, CHILD_UPDATED, CHILD_REMOVED, INITIALIZED). The event is dropped with a warning — typically CONNECTION_RECONNECTED / CONNECTION_SUSPENDED / CONNECTION_LOST events that reach the listener switch's default branch.","triggerScenarios":"Curator emits a connection-level event (e.g. CONNECTION_RECONNECTED after a ZK reconnect, or other unhandled event types) to the node-role watcher's child listener; handleChildEvent's switch has no case for it.","commonSituations":"ZK client reconnects, session suspensions during network blips, or Curator version changes introducing event types the switch doesn't cover.","solutions":["Usually informational — connection events are handled elsewhere via cache re-initialization; ignore if the node cache rebuilds afterward.","If nodes appear stale after this warning, check for a subsequent cache reset/refresh or restart the affected Druid service.","Verify ZK connectivity stability to reduce reconnect-related events.","Upgrade Druid/Curator if unhandled event types cause missed node updates."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["After reconnect warnings, verify the node cache was rebuilt (node count in logs).","Keep ZK connections stable to minimize unhandled connection event types.","Refresh/restart the watcher if discovery results look stale."],"tags":["zookeeper","curator","watcher","event-handling"],"backgroundTag":"unexpected-response-shape","analyzedSha":"9b90983fd291f26935af934383ce360473179e4d","analyzedAt":"2026-09-07T13:32:30.957Z","contentChangedAt":"2026-09-07T13:32:30.957Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}