{"record":{"id":"43e209b6b59ab742","repo":"apache/druid","slug":"lookup-management-on-node-s-s-s-interrupted","errorCode":null,"errorMessage":"lookup management on node [%s:%s:%s] interrupted.","messagePattern":"lookup management on node \\[(.+?):(.+?):(.+?)\\] interrupted\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"info","filePath":"server/src/main/java/org/apache/druid/server/lookup/cache/LookupCoordinatorManager.java","lineNumber":590,"sourceCode":"        final Map<String, LookupExtractorFactoryMapContainer> tierLookups = allLookupTiers.getOrDefault(tier, ImmutableMap.of());\n        for (final HostAndPortWithScheme node : lookupNodeDiscovery.getNodesInTier(tier)) {\n\n          LOG.debug(\n              \"Starting lookup mgmt for tier [%s] and host [%s:%s:%s].\",\n              tier,\n              node.getScheme(),\n              node.getHostText(),\n              node.getPort()\n          );\n\n          futures.add(\n              executorService.submit(\n                  () -> {\n                    try {\n                      return new AbstractMap.SimpleImmutableEntry<>(node.getHostAndPort(), doLookupManagementOnNode(node, tierLookups));\n                    }\n                    catch (InterruptedException ex) {\n                      LOG.warn(ex, \"lookup management on node [%s:%s:%s] interrupted.\", node.getScheme(), node.getHostText(), node.getPort());\n                      return null;\n                    }\n                    catch (Exception ex) {\n                      LOG.makeAlert(\n                          ex,\n                          \"Failed to finish lookup management on node [%s:%s:%s]\",\n                          node.getScheme(),\n                          node.getHostText(),\n                          node.getPort()\n                      ).emit();\n                      return null;\n                    }\n                  }\n              )\n          );\n        }\n      }\n","sourceCodeStart":572,"sourceCodeEnd":608,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/server/src/main/java/org/apache/druid/server/lookup/cache/LookupCoordinatorManager.java#L572-L608","documentation":"LookupCoordinatorManager's lookupManagementLoop submits doLookupManagementOnNode to an executor per node; if that work is interrupted while talking to the node, it logs this warning and returns null (the node's update is skipped for this round). It means the per-node lookup refresh did not complete due to interruption, not a lookup error.","triggerScenarios":"The executor thread running doLookupManagementOnNode (HTTP GET/POST to a historical/broker lookup endpoint) is interrupted — e.g. the lookup management loop is shut down while requests are in flight, or the HTTP client call is interrupted.","commonSituations":"Coordinator losing leadership or shutting down mid-lookup-propagation; lookup updates on many nodes while the process is being stopped; thread pool shutdown racing with in-flight node calls.","solutions":["If during shutdown, ignore — the next leader/run re-propagates lookups","If lookups end up inconsistent, re-trigger lookup management via the lookup coordinator endpoints","Check that the lookup management thread pool is not being shut down prematurely","Inspect node HTTP endpoints (GET /druid/v1/lookups) to confirm actual state"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// verify node lookup endpoints before pushing lookups\ncurl -f http://host:port/druid/v1/lookups/status","typeGuard":null,"tryCatchPattern":"try {\n  lookupCoordinatorManager.updateLookups(...);\n} catch (Exception e) {\n  // interrupted nodes are skipped; re-trigger to converge\n  retryUpdateWithBackoff();\n}","preventionTips":["Avoid stopping coordinators mid-lookup-propagation when possible","Re-trigger lookup management after leadership changes to ensure convergence","Monitor lookup propagation completeness via /druid/coordinator/v1/lookups/status","Size the lookup management thread pool for the number of nodes"],"tags":["interruption","lookups","coordinator","shutdown"],"backgroundTag":"thread-interrupted","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"}