Motivation: On servers with many pipelines or dynamic pipelines, it is easy for end user to make mistake during pipeline configuration. Current message: `Discarded inbound message PooledUnsafeDirectByteBuf(ridx: 0, widx: 2, cap: 2) that reached at the tail of the pipeline. Please check your pipeline configuration.` Is not always meaningful and doesn't allow to find the wrong pipeline quickly. Modification: Added additional log placeholder that identifies pipeline handlers and channel info. This will allow for the end users quickly find the problem pipeline. Result: Meaningful warning when the message reaches the end of the pipeline. Fixes #7285
This commit is contained in:
parent
f8c1f350db
commit
5ded050f7b
|
@ -1198,6 +1198,19 @@ public class DefaultChannelPipeline implements ChannelPipeline {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called once a message hit the end of the {@link ChannelPipeline} without been handled by the user
|
||||||
|
* in {@link ChannelInboundHandler#channelRead(ChannelHandlerContext, Object)}. This method is responsible
|
||||||
|
* to call {@link ReferenceCountUtil#release(Object)} on the given msg at some point.
|
||||||
|
*/
|
||||||
|
protected void onUnhandledInboundMessage(ChannelHandlerContext ctx, Object msg) {
|
||||||
|
onUnhandledInboundMessage(msg);
|
||||||
|
if (logger.isDebugEnabled()) {
|
||||||
|
logger.debug("Discarded message pipeline : {}. Channel : {}.",
|
||||||
|
ctx.pipeline().names(), ctx.channel());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called once the {@link ChannelInboundHandler#channelReadComplete(ChannelHandlerContext)} event hit
|
* Called once the {@link ChannelInboundHandler#channelReadComplete(ChannelHandlerContext)} event hit
|
||||||
* the end of the {@link ChannelPipeline}.
|
* the end of the {@link ChannelPipeline}.
|
||||||
|
@ -1291,7 +1304,7 @@ public class DefaultChannelPipeline implements ChannelPipeline {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void channelRead(ChannelHandlerContext ctx, Object msg) {
|
public void channelRead(ChannelHandlerContext ctx, Object msg) {
|
||||||
onUnhandledInboundMessage(msg);
|
onUnhandledInboundMessage(ctx, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue
Block a user