Title: With reactor-netty-http:1.0.20, on setting HttpServer.idleTimeout(idleTimeoutInMs), no GOWAY packet is seen in tcpdump
Tags: timeout;spring-webflux;reactor-netty;graceful-shutdown
Question: With reactor-netty-http:1.0.20 (with spring-webflux), on setting HttpServer.idleTimeout(idleTimeoutInMs), no GOWAY packet is seen in tcpdump.with protocol H2C, HTTP11, but directly a FIN packet at TCP level.
HttpServer.idleTimeout(idleTimeoutInMs) definition says,
.idleTimeout =&gt; Specifies an idle timeout on the connection when it is waiting for an HTTP request (resolution: ms). Once the timeout is reached the connection will be closed.
This definition doesn't say anything about the level at which it sets the idletimeout, is it directly at TCP level or HTTP level.
As per the observation from tcpdump, the idle connection termination is not graceful. The connection gets terminated on reaching the idle timeout, as seen by FIN packet at TCP level. But no GOAWAY packet is observed.
Need to configure idle timeout at HTTP level so that it is accompanied with a GOAWAY packet to terminate connection gracefully.
```@Configuration
public class NettyServerFactoryConfig implements WebServerFactoryCustomizer<NettyReactiveWebServerFactory&gt; {

    @Value(&quot;${server.http.port}&quot;)
    private Integer httpPort;

    @Value(&quot;${server.idleTimeout}&quot;)
    private Integer idleTimeout;

    @Value(&quot;${server.settingsMaxConcurrentStreams}&quot;)
    private Integer settingsMaxConcurrentStreams;

    @Override
    public void customize(NettyReactiveWebServerFactory factory) {

        LoopResources resource = LoopResources.create(&quot;my-resource&quot;);
        ReactorResourceFactory reactorResourceFactory = new ReactorResourceFactory();
        reactorResourceFactory.setLoopResources(resource);
        reactorResourceFactory.setUseGlobalResources(false);
        factory.setResourceFactory(reactorResourceFactory);

        Http2 h2 = new Http2();
        h2.setEnabled(true);
        factory.setPort(httpPort);
        factory.setHttp2(h2);

        Consumer<Builder&gt; h2Settings = s -&gt; s.maxConcurrentStreams(settingsMaxConcurrentStreams);
        factory.addServerCustomizers(httpServer -&gt; httpServer.http2Settings(h2Settings));
        factory.addServerCustomizers(httpServer -&gt; httpServer.idleTimeout(Duration.ofMillis(idleTimeout)));
        factory.addServerCustomizers(builder -&gt; builder.protocol(HttpProtocol.H2C, HttpProtocol.HTTP11));
        factory.setShutdown(Shutdown.GRACEFUL);
    }
}
```

Comment: Please create an issue here https://github.com/reactor/reactor-netty/issues and provide a reproducible example.

Comment: The issue was reported https://github.com/reactor/reactor-netty/issues/2412



{'source': 'StackExchangeDataset', 'subset': 'stackoverflow.com', 'metadata': {'AnswerCount': 0, 'CommentCount': 2, 'ContentLicense': 'CC BY-SA 4.0', 'CreationDate': '2022:00:08/02/22', 'FavoriteCount': None, 'PostTypeId': 1, 'Tags': '<timeout><spring-webflux><reactor-netty><graceful-shutdown>', 'Title': 'With reactor-netty-http:1.0.20, on setting HttpServer.idleTimeout(idleTimeoutInMs), no GOWAY packet is seen in tcpdump', 'ViewCount': 29, 'id': 73204083, 'user_AboutMe': None, 'user_AccountId': 25955231.0, 'user_DisplayName': 'Sumi Silky', 'user_Reputation': 1.0, 'user_Views': 0.0, 'user_id': 19672671.0}}