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

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

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

HTTPCORE-762: H2 protocol handler incorrectly determines the maximum frame size 
for outgoing frames in case the remote endpoint negotiated a max frame size 
larger than the protocol default


> HTTPcore5-h2 (5.2.2) Frame Size Regression: Issues with File Uploads Beyond 
> 16KB
> --------------------------------------------------------------------------------
>
>                 Key: HTTPCORE-762
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-762
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>    Affects Versions: 5.2.3
>            Reporter: Sandeep_gaur
>            Priority: Blocker
>             Fix For: 5.2.4, 5.3-alpha1
>
>
> The Issue: HTTP calls to send a file larger than 16KB are failing due to an 
> error stating, "Frame size exceeds maximum."
> Background: Our server is accessed behind an Application Load Balancer (ALB). 
> We previously faced an issue where the frame size was set to 16MB, as 
> dictated by the remote configuration, leading to memory problems. This 
> particular issue was addressed in a previous resolution: 
> https://issues.apache.org/jira/browse/HTTPCORE-751. In that resolution, we 
> agreed to use a smaller frame size, expecting that the server would not send 
> frames larger than the specified size.
> I believe that the current issue may be a regression resulting from the 
> changes implemented in https://issues.apache.org/jira/browse/HTTPCORE-751.
>  
> !https://mail.google.com/mail/u/0?ui=2&ik=caee5e288f&attid=0.1&permmsgid=msg-a:r747936870174475375&th=18bf6f169a1fc0c2&view=fimg&fur=ip&sz=s0-l75-ft&attbid=ANGjdJ_mq5F_P-JcuijCkNbPGldDMj-IPL9dP5S0DVGPFcae9FGmKqX0TPdrjdiWQshql8Yjil1AfyArPVsntOEZhb5YW4dyKelUSDCG3MCcD0xhTWGBNaFpqcjz6s0&disp=emb&realattid=ii_lp9pv8sd0|width=472,height=319!
>  
> if you look at the code highlighted above in AbstractH2StreamMultiplexer 
> class, it should be 
> final int maxPayloadSize = Math.min(capacity, localConfig.getMaxFrameSize()); 
> because we have set it value between the minimum of both server and local 
> config otherwise payload can exceed the outBuffer size which is happening in 
> our case.
> Traces Of the issues:java.lang.IllegalArgumentException: Frame size exceeds 
> maximum
> at org.apache.hc.core5.util.Args.check(Args.java:41)
> at 
> org.apache.hc.core5.http2.impl.nio.FrameOutputBuffer.write(FrameOutputBuffer.java:98)
> at 
> org.apache.hc.core5.http2.impl.nio.AbstractH2StreamMultiplexer.streamDataFrame(AbstractH2StreamMultiplexer.java:340)
> at 
> org.apache.hc.core5.http2.impl.nio.AbstractH2StreamMultiplexer.streamData(AbstractH2StreamMultiplexer.java:361)
> at 
> org.apache.hc.core5.http2.impl.nio.AbstractH2StreamMultiplexer.access$1300(AbstractH2StreamMultiplexer.java:92)
> at 
> org.apache.hc.core5.http2.impl.nio.AbstractH2StreamMultiplexer$H2StreamChannelImpl.write(AbstractH2StreamMultiplexer.java:1709)
> at 
> org.apache.hc.core5.http2.impl.nio.ClientH2StreamHandler$1.write(ClientH2StreamHandler.java:92)
> at 
> org.apache.hc.client5.http.impl.async.HttpAsyncMainClientExec$1$1.write(HttpAsyncMainClientExec.java:172)
> at 
> org.apache.hc.core5.http.nio.entity.BasicAsyncEntityProducer.produce(BasicAsyncEntityProducer.java:129)
> at 
> org.apache.hc.core5.http.nio.support.BasicRequestProducer.produce(BasicRequestProducer.java:104)
> at 
> com.iontrading.treasuryportal.core.bindingshelper.producers.TARequestProducer.produce(TARequestProducer.java:52)
> at 
> org.apache.hc.client5.http.impl.async.InternalAbstractHttpAsyncClient$2.produce(InternalAbstractHttpAsyncClient.java:260)
> at 
> org.apache.hc.client5.http.impl.async.HttpAsyncMainClientExec$1.produce(HttpAsyncMainClientExec.java:163)
> at 
> org.apache.hc.core5.http2.impl.nio.ClientH2StreamHandler.produceOutput(ClientH2StreamHandler.java:172)
> at 
> org.apache.hc.core5.http2.impl.nio.AbstractH2StreamMultiplexer$H2Stream.produceOutput(AbstractH2StreamMultiplexer.java:1539)
> at 
> org.apache.hc.core5.http2.impl.nio.AbstractH2StreamMultiplexer.produceOutput(AbstractH2StreamMultiplexer.java:1266)
> at 
> org.apache.hc.core5.http2.impl.nio.AbstractH2StreamMultiplexer.onOutput(AbstractH2StreamMultiplexer.java:474)
> at 
> org.apache.hc.core5.http2.impl.nio.AbstractH2IOEventHandler.outputReady(AbstractH2IOEventHandler.java:74)
> at 
> org.apache.hc.core5.http2.impl.nio.ClientH2IOEventHandler.outputReady(ClientH2IOEventHandler.java:39)



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

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

Reply via email to