You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Lubos Husivarga (Jira)" <ji...@apache.org> on 2021/12/30 12:29:00 UTC

[jira] [Created] (HTTPCORE-707) AbstractH2StreamMultiplexer: FrameOutputBuffer: Frame size exceeds maximum

Lubos Husivarga created HTTPCORE-707:
----------------------------------------

             Summary: AbstractH2StreamMultiplexer: FrameOutputBuffer: Frame size exceeds maximum
                 Key: HTTPCORE-707
                 URL: https://issues.apache.org/jira/browse/HTTPCORE-707
             Project: HttpComponents HttpCore
          Issue Type: Bug
          Components: HttpCore NIO
    Affects Versions: 5.2-alpha1
            Reporter: Lubos Husivarga


AbstractH2StreamMultiplexer initializes outputBuffer with frame size from local config:

_this.outputBuffer = new FrameOutputBuffer(this.outputMetrics, this.{*}localConfig{*}.getMaxFrameSize());_

 

Data are streamed using streamData(...) method which checks maxPayloadSize against remote config:

_final int maxPayloadSize = Math.min(capacity, {*}remoteConfig{*}.getMaxFrameSize());_

 

Issue: When remote config has greater max frame size than local config and the payload is also greater than local max frame size, the FrameOutputBuffer throws "Frame size exceeds maximum" error, since it compares the payload size against local frame size as it was initialized with it, not remote frame size.

 

My solution: AbstractH2StreamMultiplexer.{*}applyRemoteSettings{*}(...) updates the outputBuffer's max frame size based on remote config. Since FrameOutputBuffer has the max frame size property final, I had to remove the final. Not sure whether it could break something later on :)

 

I will appreciate any better solution to this, as it is really annoying issue depending on remote site config and payload size, so may be spotted randomly.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org