What does releasing a message ((ByteBuf) msg).release(); exactly do in netty and what happens if we don't release message like the code below:
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
//received message
ByteBuf in = (ByteBuf) msg;
//message sent to remote peer without releasing
ctx.writeAndFlush(msg);
}