@blucas makes sense. We love PRs as you know ;)
 +1 to PRs :)
 Let me fix this.
 Fixed by https://github.com/netty/netty/pull/3948

Http2ConnectionHandler breaks channelReadComplete pipeline notification
Netty Version: 5.0.0-Alpha3-SNAPSHOT

Hi guys,

`Http2ConnectionHandler` overrides `channelReadComplete(...)` [here](https://github.com/netty/netty/blob/master/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java#L421) but fails to pass notification further down the pipeline by calling `super.channelReadComplete(...)` or `ctx.fireChannelReadComplete(...)`.  I assume it should call `super.channelReadComplete(...)`, what are your thoughts? 

/cc @Scottmitch @nmittler @louiscryan as you guys know more about this :)

codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java
codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java
diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java
index 844cef3c5ba..36073ed1bcc 100644
--- a/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java
+++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java
@@ -455,7 +455,11 @@ public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise)
     public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
         // Trigger flush after read on the assumption that flush is cheap if there is nothing to write and that
         // for flow-control the read may release window that causes data to be written that can now be flushed.
-        flush(ctx);
+        try {
+            flush(ctx);
+        } finally {
+            super.channelReadComplete(ctx);
+        }
     }
 
     /**
