apache/druid · info
lookup management on node
Error message
lookup management on node [%s:%s:%s] interrupted.
What it means
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.
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
Defensive patterns
Strategy: retry
Validate before calling
// verify node lookup endpoints before pushing lookups curl -f http://host:port/druid/v1/lookups/status
Try / catch
try {
lookupCoordinatorManager.updateLookups(...);
} catch (Exception e) {
// interrupted nodes are skipped; re-trigger to converge
retryUpdateWithBackoff();
} Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- Skipping kill task scheduling because thread is interrupted.
- Interrupted during close()
- Interrupted waiting for jetty shutdown.
- Requested delete lookup
- Requested delete of lookup
AI-assisted analysis of apache/druid@9b90983fd2 (2026-09-07).
Data as JSON: /api/errors/43e209b6b59ab742.
Report an issue: GitHub.
Appendix: source
Thrown at server/src/main/java/org/apache/druid/server/lookup/cache/LookupCoordinatorManager.java:590
final Map<String, LookupExtractorFactoryMapContainer> tierLookups = allLookupTiers.getOrDefault(tier, ImmutableMap.of());
for (final HostAndPortWithScheme node : lookupNodeDiscovery.getNodesInTier(tier)) {
LOG.debug(
"Starting lookup mgmt for tier [%s] and host [%s:%s:%s].",
tier,
node.getScheme(),
node.getHostText(),
node.getPort()
);
futures.add(
executorService.submit(
() -> {
try {
return new AbstractMap.SimpleImmutableEntry<>(node.getHostAndPort(), doLookupManagementOnNode(node, tierLookups));
}
catch (InterruptedException ex) {
LOG.warn(ex, "lookup management on node [%s:%s:%s] interrupted.", node.getScheme(), node.getHostText(), node.getPort());
return null;
}
catch (Exception ex) {
LOG.makeAlert(
ex,
"Failed to finish lookup management on node [%s:%s:%s]",
node.getScheme(),
node.getHostText(),
node.getPort()
).emit();
return null;
}
}
)
);
}
}
View on GitHub (pinned to 9b90983fd2)