armeria icon indicating copy to clipboard operation
armeria copied to clipboard

Fix to override HTTP/2 graceful shutdown timeout correctly

Open minwoox opened this issue 2 years ago • 1 comments

Motivation:

  • We use idleTimeout value to set the HTTP/2 graceful shutdown timeout on the client side. However, it's not set correctly.
    • We try to set the value here: https://github.com/line/armeria/blob/armeria-1.17.2/core/src/main/java/com/linecorp/armeria/client/Http2ClientConnectionHandler.java#L55-L61
    • But the value is overwritten here: https://github.com/netty/netty/blob/netty-4.1.79.Final/codec-http2/src/main/java/io/netty/handler/codec/http2/AbstractHttp2ConnectionHandlerBuilder.java#L589

Modifications:

  • Fix to override HTTP/2 graceful shutdown timeout using ClientFactory.idleTimeoutMillis().

Result:

  • HTTP/2 graceful shutdown timeout is correctly set using ClientFactory.idleTimeoutMillis().

Co-authored-by: @melgenek

minwoox avatar Aug 04 '22 04:08 minwoox

Codecov Report

Merging #4381 (1222f01) into master (bcf1ebd) will increase coverage by 0.35%. The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master    #4381      +/-   ##
============================================
+ Coverage     73.48%   73.84%   +0.35%     
- Complexity    17659    17702      +43     
============================================
  Files          1504     1505       +1     
  Lines         66099    66126      +27     
  Branches       8337     8311      -26     
============================================
+ Hits          48576    48832     +256     
+ Misses        13308    13296      -12     
+ Partials       4215     3998     -217     
Impacted Files Coverage Δ
...p/armeria/client/Http2ClientConnectionHandler.java 90.90% <ø> (-0.76%) :arrow_down:
...armeria/client/HttpClientPipelineConfigurator.java 79.09% <100.00%> (+2.15%) :arrow_up:
...p/armeria/server/Http2ServerConnectionHandler.java 87.32% <100.00%> (+1.40%) :arrow_up:
...n/java/com/linecorp/armeria/server/HttpServer.java 40.00% <0.00%> (-20.00%) :arrow_down:
.../armeria/server/grpc/UnframedGrpcErrorHandler.java 75.00% <0.00%> (-14.84%) :arrow_down:
...meria/client/DefaultDnsQueryLifecycleObserver.java 76.81% <0.00%> (-2.90%) :arrow_down:
...easy/ResteasyAsynchronousExecutionContextImpl.java 53.48% <0.00%> (-2.33%) :arrow_down:
...ava/com/linecorp/armeria/server/file/HttpFile.java 85.71% <0.00%> (-2.10%) :arrow_down:
...eria/client/endpoint/AbstractEndpointSelector.java 78.57% <0.00%> (-1.43%) :arrow_down:
.../armeria/client/endpoint/dns/DnsEndpointGroup.java 81.69% <0.00%> (-1.41%) :arrow_down:
... and 229 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

codecov[bot] avatar Aug 04 '22 05:08 codecov[bot]

Thanks for reviewing. 😉

minwoox avatar Aug 12 '22 03:08 minwoox