apache/druid · info
numMergeBuffers[ ] configured, that is ignored on Router
Error message
numMergeBuffers[%d] configured, that is ignored on Router
What it means
Log warning in RouterProcessingModule.getMergeBufferPool. The Router never performs merge operations, so it binds a DummyBlockingPool for merge buffers; a configured druid.processing.numMergeBuffers has no effect on the Router and the warning flags that the value is ignored.
Solutions
- Remove druid.processing.numMergeBuffers from the Router's runtime.properties.
- Keep merge-buffer sizing in per-node configs for historicals/peers only.
- No functional impact if left set — the DummyBlockingPool is used regardless; suppress noise by removing the key.
- Update deployment automation so processing keys are only emitted for query-executing roles.
Example fix
// before (router runtime.properties) druid.processing.numMergeBuffers=2 // after (removed) # druid.processing.numMergeBuffers not set on Router
Defensive patterns
Strategy: validation
Validate before calling
// Strip merge-buffer keys from Router configs
if (role == Role.ROUTER) {
props.remove("druid.processing.numMergeBuffers");
} Prevention
- Set druid.processing.numMergeBuffers only on nodes that merge (historicals)
- Emit per-role config blocks in deployment templates
- Ignore functionally, but clean up to silence the warning
When it happens
Trigger: druid.processing.numMergeBuffers is explicitly set (isNumMergeBuffersConfigured() true) in the Router's runtime.properties or shared config while the Router module constructs its (no-op) merge buffer pool.
Common situations: Cluster-wide common.runtime.properties carrying historical tuning; deployment templates reusing the same processing block for all node types.
Related errors
- numThreads[ ] configured, that is ignored on Router
- A valid tlsPort needs to specified when druid.enableTlsPort…
- At least one of the druid.enablePlaintextPort or…
- At least one task runner must be enabled
- At most one of 'druid.broker.segment.watchedTiers' and…
AI-assisted analysis of apache/druid@9b90983fd2 (2026-09-07).
Data as JSON: /api/errors/2f4999d0f405c73d.
Report an issue: GitHub.
Appendix: source
Thrown at server/src/main/java/org/apache/druid/guice/RouterProcessingModule.java:83
}
return NoopQueryProcessingPool.instance();
}
@Provides
@LazySingleton
@Global
public NonBlockingPool<ByteBuffer> getIntermediateResultsPool()
{
return DummyNonBlockingPool.instance();
}
@Provides
@LazySingleton
@Merging
public BlockingPool<ByteBuffer> getMergeBufferPool(DruidProcessingConfig config)
{
if (config.isNumMergeBuffersConfigured()) {
log.warn(
"numMergeBuffers[%d] configured, that is ignored on Router",
config.getNumMergeBuffers()
);
}
return DummyBlockingPool.instance();
}
/**
* Reservation pool injected with a dummy pool
*/
@Provides
@LazySingleton
@Merging
public GroupByResourcesReservationPool getGroupByResourcesReservationPool(
@Merging BlockingPool<ByteBuffer> mergeBufferPool,
GroupByQueryConfig groupByQueryConfig
)
{View on GitHub (pinned to 9b90983fd2)