You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2022/10/02 14:42:00 UTC

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

    [ https://issues.apache.org/jira/browse/HTTPCORE-707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17612122#comment-17612122 ] 

ASF subversion and git services commented on HTTPCORE-707:
----------------------------------------------------------

Commit b2a5a1810ec1876fa1246d0f6362f7b0bf2d6a9b in httpcomponents-core's branch refs/heads/github_ci_on_win from Oleg Kalnichevski
[ https://gitbox.apache.org/repos/asf?p=httpcomponents-core.git;h=b2a5a1810 ]

HTTPCORE-707: H2 connections incorrectly enforce the frame size max limit based on local settings instead of remote ones


> 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
>            Priority: Major
>             Fix For: 5.1.4, 5.2-beta1
>
>         Attachments: context_wire_log.txt, http2_flow_frame.txt
>
>
> 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 suggestion: AbstractH2StreamMultiplexer.{*}applyRemoteSettings{*}(...) should update the outputBuffer's max frame size based on remote config.
>  
> I will appreciate your help, as it is really annoying issue depending on remote site config and payload size, so it may be spotted randomly.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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