Description
The addition of an input window to AbstractHttp1StreamDuplexer causes ReactiveDataConsumer to only receive as many bytes as the input window's initial size. By default, this is only 65,536 bytes.
The problem is that updateCapacity is only called after the window is exhausted. This happens after consume returns, which is where RectiveDataConsumer tries to signal available capacity to its capacityChannel. As a result, it's never able to signal more capacity to AbstractHttp1StreamDuplexer, and all future bytes on this channel get stuck in the system's socket receive buffer.
As far as I can tell, the capacity channel was never set in prior releases. It just happened to work because my tests never exhausted the buffer space in ReactiveDataConsumer.
Attachments
Issue Links
- links to