Fix an NPE in AbstractHttp2StreamChannel#9379
Conversation
Motivation: If a read triggers a AbstractHttp2StreamChannel to close we can get an NPE in the read loop. Modifications: Make sure that the inboundBuffer isn't null before attempting to continue the loop. Result: No NPE. Fixes netty#9375.
|
Can one of the admins verify this patch? |
|
I don't know how to write a test for this, so pointers appreciated (no pun intended). It also feels like something that we shouldn't necessarily need a test for. |
|
@bryce-anderson let me see if I can write one.. |
|
@bryce-anderson please check 45136e6 ... This is the unit test for the NPE :) |
|
@netty-bot test this please |
|
@bryce-anderson thanks a lot... can you verify if finagle tests now pass with this pulled in ? |
Motivation: If a read triggers a AbstractHttp2StreamChannel to close we can get an NPE in the read loop. Modifications: Make sure that the inboundBuffer isn't null before attempting to continue the loop. Result: No NPE. Fixes #9337
|
I tried the patch based on 4.1.37.Final and it seems to have fixed it. |
|
@bryce-anderson so everything is good now ? Which means if we ship a new release with the fix you can upgrade ? |
|
Well, when I tried against 4.1.38.Final-SNAPSHOT something else wasn't working, but I don't know what and spent 0 time looking into it, so kinda... |
|
I'm also digging into a problem where I see HTTP2 data packets getting pushed down the stream pipelines out of order (I get a eos packet that skips the stuff in inboundBuffer) but I don't have anything ticket-worthy right now so I haven't filed one. That is one that we'll really need. |
|
@bryce-anderson can you check if all works with 4.1.36.Final only ? We need to find a way to track all of this down |
|
Let's start a ticket for the out-of-order thing. It is also broken in 4.1.35.Final, and I may have just tracked it down (maybe not). |
|
Opened #9387. |
Motivation:
If a read triggers a AbstractHttp2StreamChannel to close we can
get an NPE in the read loop.
Modifications:
Make sure that the inboundBuffer isn't null before attempting to
continue the loop.
Result:
Fixes #9375.
No NPE.