RST on TCP level sent by Tomcat

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

RST on TCP level sent by Tomcat

Arshiya Shariff-2
Hi Team,

Can you please help us with the below queries :



1. When does a http2 connection close ? We see that the keepAliveTimeout is
20 seconds by default, but it is not closing the connection on
keepAliveTimeout.

2. How to keep the connections alive / How to enable ping frames to be sent
to the other end to keep the connection alive ?



3. We see that RST is sent by tomcat on receiving http2 request, when does
this happen ?

4. What are the recommended ipv4.tcp settings for these kind of scenarios ?



Embedded Tomcat         : 9.0.22

Java Version                     : 1.8.0.201

Hardware                          : Red Hat Enterprise Linux Server release
7.4



Thanks and Regards

Arshiya Shariff
Reply | Threaded
Open this post in threaded view
|

Re: RST on TCP level sent by Tomcat

markt
On 18/05/2020 11:01, Arshiya Shariff wrote:
> Hi Team,
>
> Can you please help us with the below queries :

There have been various timeout related fixes since 9.0.22. Please
upgrade to 9.0.35 and re-test.

> 1. When does a http2 connection close ? We see that the keepAliveTimeout is
> 20 seconds by default, but it is not closing the connection on
> keepAliveTimeout.

Please re-test with 9.0.35.

> 2. How to keep the connections alive / How to enable ping frames to be sent
> to the other end to keep the connection alive ?

There is no standard API to send an HTTP/2 ping. If you want to keep the
connections alive for longer, use a longer keep-alive setting.

> 3. We see that RST is sent by tomcat on receiving http2 request, when does
> this happen ?

When things go wrong. E.g. when the client sends a request to a
connection that has been closed.

> 4. What are the recommended ipv4.tcp settings for these kind of scenarios ?

There are no recommended settings.

Mark


>
>
>
> Embedded Tomcat         : 9.0.22
>
> Java Version                     : 1.8.0.201
>
> Hardware                          : Red Hat Enterprise Linux Server release
> 7.4
>
>
>
> Thanks and Regards
>
> Arshiya Shariff
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

RE: RST on TCP level sent by Tomcat

Arshiya Shariff
Hi Mark,
Thank you for the quick response.

Please provide us a little more clarity on the 3rd query :

3. We see that RST is sent by tomcat on receiving http2 request, when  does this happen ?
>>> When things go wrong. E.g. when the client sends a request to a connection that has been closed.

 Why does tomcat not send GOAWAY on connection close, upon next request from client it sends RST ?

Also, Can you please send us the references to the timeout related fixes in 9.0.35 (since 9.0.22).

Thanks and Regards
Arshiya Shariff



-----Original Message-----
From: Mark Thomas <[hidden email]>
Sent: Monday, May 18, 2020 4:17 PM
To: [hidden email]
Subject: Re: RST on TCP level sent by Tomcat

On 18/05/2020 11:01, Arshiya Shariff wrote:
> Hi Team,
>
> Can you please help us with the below queries :

There have been various timeout related fixes since 9.0.22. Please upgrade to 9.0.35 and re-test.

> 1. When does a http2 connection close ? We see that the
> keepAliveTimeout is
> 20 seconds by default, but it is not closing the connection on
> keepAliveTimeout.

Please re-test with 9.0.35.

> 2. How to keep the connections alive / How to enable ping frames to be
> sent to the other end to keep the connection alive ?

There is no standard API to send an HTTP/2 ping. If you want to keep the connections alive for longer, use a longer keep-alive setting.

> 3. We see that RST is sent by tomcat on receiving http2 request, when
> does this happen ?

When things go wrong. E.g. when the client sends a request to a connection that has been closed.

> 4. What are the recommended ipv4.tcp settings for these kind of scenarios ?

There are no recommended settings.

Mark


>
>
>
> Embedded Tomcat         : 9.0.22
>
> Java Version                     : 1.8.0.201
>
> Hardware                          : Red Hat Enterprise Linux Server release
> 7.4
>
>
>
> Thanks and Regards
>
> Arshiya Shariff
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: RST on TCP level sent by Tomcat

Martin Grigorov
Hi Arshiya,

On Mon, May 18, 2020 at 2:15 PM Arshiya Shariff
<[hidden email]> wrote:

> Hi Mark,
> Thank you for the quick response.
>
> Please provide us a little more clarity on the 3rd query :
>
> 3. We see that RST is sent by tomcat on receiving http2 request, when
> does this happen ?
> >>> When things go wrong. E.g. when the client sends a request to a
> connection that has been closed.
>
>  Why does tomcat not send GOAWAY on connection close, upon next request
> from client it sends RST ?
>
> Also, Can you please send us the references to the timeout related fixes
> in 9.0.35 (since 9.0.22).
>

Please consult with the changelog for 9.x:
https://tomcat.apache.org/tomcat-9.0-doc/changelog.html


>
> Thanks and Regards
> Arshiya Shariff
>
>
>
> -----Original Message-----
> From: Mark Thomas <[hidden email]>
> Sent: Monday, May 18, 2020 4:17 PM
> To: [hidden email]
> Subject: Re: RST on TCP level sent by Tomcat
>
> On 18/05/2020 11:01, Arshiya Shariff wrote:
> > Hi Team,
> >
> > Can you please help us with the below queries :
>
> There have been various timeout related fixes since 9.0.22. Please upgrade
> to 9.0.35 and re-test.
>
> > 1. When does a http2 connection close ? We see that the
> > keepAliveTimeout is
> > 20 seconds by default, but it is not closing the connection on
> > keepAliveTimeout.
>
> Please re-test with 9.0.35.
>
> > 2. How to keep the connections alive / How to enable ping frames to be
> > sent to the other end to keep the connection alive ?
>
> There is no standard API to send an HTTP/2 ping. If you want to keep the
> connections alive for longer, use a longer keep-alive setting.
>
> > 3. We see that RST is sent by tomcat on receiving http2 request, when
> > does this happen ?
>
> When things go wrong. E.g. when the client sends a request to a connection
> that has been closed.
>
> > 4. What are the recommended ipv4.tcp settings for these kind of
> scenarios ?
>
> There are no recommended settings.
>
> Mark
>
>
> >
> >
> >
> > Embedded Tomcat         : 9.0.22
> >
> > Java Version                     : 1.8.0.201
> >
> > Hardware                          : Red Hat Enterprise Linux Server
> release
> > 7.4
> >
> >
> >
> > Thanks and Regards
> >
> > Arshiya Shariff
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

RE: RST on TCP level sent by Tomcat

Arshiya Shariff
In reply to this post by Arshiya Shariff
Hi Team ,

1.We are facing a problem where tomcat is closing the http2 connections silently without sending GOAWAY and FIN. Under what cases does this happen ?

2. What happens when maxkeepaliverequests reaches the configured limit, will it close connections silently?

3. What happens when max Connections is reached, will it close older connections?

4. Currently we see keepalive timeout is default 20 seconds, but the connection is not closed after that.   For requests received after 3 hours also we are sending response .Is there any way to close idle-connections ?

Embedded Tomcat         : 9.0.22

Thanks and Regards
Arshiya Shariff


-----Original Message-----
From: Arshiya Shariff
Sent: Monday, May 18, 2020 4:45 PM
To: Mark Thomas <[hidden email]>; [hidden email]
Cc: M Venkata Pratap M <[hidden email]>
Subject: RE: RST on TCP level sent by Tomcat

Hi Mark,
Thank you for the quick response.

Please provide us a little more clarity on the 3rd query :

3. We see that RST is sent by tomcat on receiving http2 request, when  does this happen ?
>>> When things go wrong. E.g. when the client sends a request to a connection that has been closed.

 Why does tomcat not send GOAWAY on connection close, upon next request from client it sends RST ?

Also, Can you please send us the references to the timeout related fixes in 9.0.35 (since 9.0.22).

Thanks and Regards
Arshiya Shariff



-----Original Message-----
From: Mark Thomas <[hidden email]>
Sent: Monday, May 18, 2020 4:17 PM
To: [hidden email]
Subject: Re: RST on TCP level sent by Tomcat

On 18/05/2020 11:01, Arshiya Shariff wrote:
> Hi Team,
>
> Can you please help us with the below queries :

There have been various timeout related fixes since 9.0.22. Please upgrade to 9.0.35 and re-test.

> 1. When does a http2 connection close ? We see that the
> keepAliveTimeout is
> 20 seconds by default, but it is not closing the connection on
> keepAliveTimeout.

Please re-test with 9.0.35.

> 2. How to keep the connections alive / How to enable ping frames to be
> sent to the other end to keep the connection alive ?

There is no standard API to send an HTTP/2 ping. If you want to keep the connections alive for longer, use a longer keep-alive setting.

> 3. We see that RST is sent by tomcat on receiving http2 request, when
> does this happen ?

When things go wrong. E.g. when the client sends a request to a connection that has been closed.

> 4. What are the recommended ipv4.tcp settings for these kind of scenarios ?

There are no recommended settings.

Mark


>
>
>
> Embedded Tomcat         : 9.0.22
>
> Java Version                     : 1.8.0.201
>
> Hardware                          : Red Hat Enterprise Linux Server release
> 7.4
>
>
>
> Thanks and Regards
>
> Arshiya Shariff
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: RST on TCP level sent by Tomcat

markt
On 20/05/2020 07:02, Arshiya Shariff wrote:
> Hi Team ,
>
> 1.We are facing a problem where tomcat is closing the http2 connections silently without sending GOAWAY and FIN. Under what cases does this happen ?

Tomcat always tries to write the GOAWAY frame. Network issues may
prevent the client receiving it.

> 2. What happens when maxkeepaliverequests reaches the configured limit, will it close connections silently?

Nothing. The limit does not exist in HTTP/2.

> 3. What happens when max Connections is reached, will it close older connections?

No. New connections will have to wait until a connection is available.

> 4. Currently we see keepalive timeout is default 20 seconds, but the connection is not closed after that.   For requests received after 3 hours also we are sending response .Is there any way to close idle-connections ?

Again, please upgrade and re-test.

The keep-alive timeout only applies once the entire connection is idle -
i.e. there are no currently processing streams.

Mark


>
> Embedded Tomcat         : 9.0.22
>
> Thanks and Regards
> Arshiya Shariff
>
>
> -----Original Message-----
> From: Arshiya Shariff
> Sent: Monday, May 18, 2020 4:45 PM
> To: Mark Thomas <[hidden email]>; [hidden email]
> Cc: M Venkata Pratap M <[hidden email]>
> Subject: RE: RST on TCP level sent by Tomcat
>
> Hi Mark,
> Thank you for the quick response.
>
> Please provide us a little more clarity on the 3rd query :
>
> 3. We see that RST is sent by tomcat on receiving http2 request, when  does this happen ?
>>>> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>
>  Why does tomcat not send GOAWAY on connection close, upon next request from client it sends RST ?
>
> Also, Can you please send us the references to the timeout related fixes in 9.0.35 (since 9.0.22).
>
> Thanks and Regards
> Arshiya Shariff
>
>
>
> -----Original Message-----
> From: Mark Thomas <[hidden email]>
> Sent: Monday, May 18, 2020 4:17 PM
> To: [hidden email]
> Subject: Re: RST on TCP level sent by Tomcat
>
> On 18/05/2020 11:01, Arshiya Shariff wrote:
>> Hi Team,
>>
>> Can you please help us with the below queries :
>
> There have been various timeout related fixes since 9.0.22. Please upgrade to 9.0.35 and re-test.
>
>> 1. When does a http2 connection close ? We see that the
>> keepAliveTimeout is
>> 20 seconds by default, but it is not closing the connection on
>> keepAliveTimeout.
>
> Please re-test with 9.0.35.
>
>> 2. How to keep the connections alive / How to enable ping frames to be
>> sent to the other end to keep the connection alive ?
>
> There is no standard API to send an HTTP/2 ping. If you want to keep the connections alive for longer, use a longer keep-alive setting.
>
>> 3. We see that RST is sent by tomcat on receiving http2 request, when
>> does this happen ?
>
> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>
>> 4. What are the recommended ipv4.tcp settings for these kind of scenarios ?
>
> There are no recommended settings.
>
> Mark
>
>
>>
>>
>>
>> Embedded Tomcat         : 9.0.22
>>
>> Java Version                     : 1.8.0.201
>>
>> Hardware                          : Red Hat Enterprise Linux Server release
>> 7.4
>>
>>
>>
>> Thanks and Regards
>>
>> Arshiya Shariff
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

RE: RST on TCP level sent by Tomcat

Arshiya Shariff
Hi Mark,
Thank you for the response.

Getting back on Query 3 and 4.

>>> There are no active streams and still connection is not being closed by tomcat , and after sometime for new requests tomcat is sending RST.
  How long does new connection have to wait when connection limit reached , when TCP closed it with RST for    such waiting connections ?

>>> As it is a production issue, it's hard for us to reproduce this at our end and retest.

Thanks and Regards
Arshiya Shariff


-----Original Message-----
From: Mark Thomas <[hidden email]>
Sent: Wednesday, May 20, 2020 1:00 PM
To: [hidden email]
Subject: Re: RST on TCP level sent by Tomcat

On 20/05/2020 07:02, Arshiya Shariff wrote:
> Hi Team ,
>
> 1.We are facing a problem where tomcat is closing the http2 connections silently without sending GOAWAY and FIN. Under what cases does this happen ?

Tomcat always tries to write the GOAWAY frame. Network issues may prevent the client receiving it.

> 2. What happens when maxkeepaliverequests reaches the configured limit, will it close connections silently?

Nothing. The limit does not exist in HTTP/2.

> 3. What happens when max Connections is reached, will it close older connections?

No. New connections will have to wait until a connection is available.

> 4. Currently we see keepalive timeout is default 20 seconds, but the connection is not closed after that.   For requests received after 3 hours also we are sending response .Is there any way to close idle-connections ?

Again, please upgrade and re-test.

The keep-alive timeout only applies once the entire connection is idle - i.e. there are no currently processing streams.

Mark


>
> Embedded Tomcat         : 9.0.22
>
> Thanks and Regards
> Arshiya Shariff
>
>
> -----Original Message-----
> From: Arshiya Shariff
> Sent: Monday, May 18, 2020 4:45 PM
> To: Mark Thomas <[hidden email]>; [hidden email]
> Cc: M Venkata Pratap M <[hidden email]>
> Subject: RE: RST on TCP level sent by Tomcat
>
> Hi Mark,
> Thank you for the quick response.
>
> Please provide us a little more clarity on the 3rd query :
>
> 3. We see that RST is sent by tomcat on receiving http2 request, when  does this happen ?
>>>> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>
>  Why does tomcat not send GOAWAY on connection close, upon next request from client it sends RST ?
>
> Also, Can you please send us the references to the timeout related fixes in 9.0.35 (since 9.0.22).
>
> Thanks and Regards
> Arshiya Shariff
>
>
>
> -----Original Message-----
> From: Mark Thomas <[hidden email]>
> Sent: Monday, May 18, 2020 4:17 PM
> To: [hidden email]
> Subject: Re: RST on TCP level sent by Tomcat
>
> On 18/05/2020 11:01, Arshiya Shariff wrote:
>> Hi Team,
>>
>> Can you please help us with the below queries :
>
> There have been various timeout related fixes since 9.0.22. Please upgrade to 9.0.35 and re-test.
>
>> 1. When does a http2 connection close ? We see that the
>> keepAliveTimeout is
>> 20 seconds by default, but it is not closing the connection on
>> keepAliveTimeout.
>
> Please re-test with 9.0.35.
>
>> 2. How to keep the connections alive / How to enable ping frames to
>> be sent to the other end to keep the connection alive ?
>
> There is no standard API to send an HTTP/2 ping. If you want to keep the connections alive for longer, use a longer keep-alive setting.
>
>> 3. We see that RST is sent by tomcat on receiving http2 request, when
>> does this happen ?
>
> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>
>> 4. What are the recommended ipv4.tcp settings for these kind of scenarios ?
>
> There are no recommended settings.
>
> Mark
>
>
>>
>>
>>
>> Embedded Tomcat         : 9.0.22
>>
>> Java Version                     : 1.8.0.201
>>
>> Hardware                          : Red Hat Enterprise Linux Server release
>> 7.4
>>
>>
>>
>> Thanks and Regards
>>
>> Arshiya Shariff
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]
Reply | Threaded
Open this post in threaded view
|

RE: RST on TCP level sent by Tomcat

Arshiya Shariff
Hi Mark,
Thank you for the response.

Getting back on Query 3 and 4.

>>> There are no active streams and still connection is not being closed by tomcat , and after sometime for new requests tomcat is sending RST.
>>> As it is a production issue, it's hard for us to reproduce this at our end and retest.

  1.How long does new connection have to wait when connection limit reached , when TCP closed it with RST for    such waiting connections ?

 2.What is the idle timeout in 9.0.22 for http2 if not provided , will there be issues if it is infinite also ?


Thanks and Regards
Arshiya Shariff


-----Original Message-----
From: Mark Thomas <[hidden email]>
Sent: Wednesday, May 20, 2020 1:00 PM
To: [hidden email]
Subject: Re: RST on TCP level sent by Tomcat

On 20/05/2020 07:02, Arshiya Shariff wrote:
> Hi Team ,
>
> 1.We are facing a problem where tomcat is closing the http2 connections silently without sending GOAWAY and FIN. Under what cases does this happen ?

Tomcat always tries to write the GOAWAY frame. Network issues may prevent the client receiving it.

> 2. What happens when maxkeepaliverequests reaches the configured limit, will it close connections silently?

Nothing. The limit does not exist in HTTP/2.

> 3. What happens when max Connections is reached, will it close older connections?

No. New connections will have to wait until a connection is available.

> 4. Currently we see keepalive timeout is default 20 seconds, but the connection is not closed after that.   For requests received after 3 hours also we are sending response .Is there any way to close idle-connections ?

Again, please upgrade and re-test.

The keep-alive timeout only applies once the entire connection is idle - i.e. there are no currently processing streams.

Mark


>
> Embedded Tomcat         : 9.0.22
>
> Thanks and Regards
> Arshiya Shariff
>
>
> -----Original Message-----
> From: Arshiya Shariff
> Sent: Monday, May 18, 2020 4:45 PM
> To: Mark Thomas <[hidden email]>; [hidden email]
> Cc: M Venkata Pratap M <[hidden email]>
> Subject: RE: RST on TCP level sent by Tomcat
>
> Hi Mark,
> Thank you for the quick response.
>
> Please provide us a little more clarity on the 3rd query :
>
> 3. We see that RST is sent by tomcat on receiving http2 request, when  does this happen ?
>>>> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>
>  Why does tomcat not send GOAWAY on connection close, upon next request from client it sends RST ?
>
> Also, Can you please send us the references to the timeout related fixes in 9.0.35 (since 9.0.22).
>
> Thanks and Regards
> Arshiya Shariff
>
>
>
> -----Original Message-----
> From: Mark Thomas <[hidden email]>
> Sent: Monday, May 18, 2020 4:17 PM
> To: [hidden email]
> Subject: Re: RST on TCP level sent by Tomcat
>
> On 18/05/2020 11:01, Arshiya Shariff wrote:
>> Hi Team,
>>
>> Can you please help us with the below queries :
>
> There have been various timeout related fixes since 9.0.22. Please upgrade to 9.0.35 and re-test.
>
>> 1. When does a http2 connection close ? We see that the
>> keepAliveTimeout is
>> 20 seconds by default, but it is not closing the connection on
>> keepAliveTimeout.
>
> Please re-test with 9.0.35.
>
>> 2. How to keep the connections alive / How to enable ping frames to
>> be sent to the other end to keep the connection alive ?
>
> There is no standard API to send an HTTP/2 ping. If you want to keep the connections alive for longer, use a longer keep-alive setting.
>
>> 3. We see that RST is sent by tomcat on receiving http2 request, when
>> does this happen ?
>
> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>
>> 4. What are the recommended ipv4.tcp settings for these kind of scenarios ?
>
> There are no recommended settings.
>
> Mark
>
>
>>
>>
>>
>> Embedded Tomcat         : 9.0.22
>>
>> Java Version                     : 1.8.0.201
>>
>> Hardware                          : Red Hat Enterprise Linux Server release
>> 7.4
>>
>>
>>
>> Thanks and Regards
>>
>> Arshiya Shariff
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: RST on TCP level sent by Tomcat

markt


On 20/05/2020 10:07, Arshiya Shariff wrote:
> Hi Mark,
> Thank you for the response.
>
> Getting back on Query 3 and 4.
>
>>>> There are no active streams and still connection is not being closed by tomcat , and after sometime for new requests tomcat is sending RST.
>>>> As it is a production issue, it's hard for us to reproduce this at our end and retest.
>
>   1.How long does new connection have to wait when connection limit reached , when TCP closed it with RST for    such waiting connections ?

That will depend on the client's connection timeout. Tomcat has no
control over that.

>  2.What is the idle timeout in 9.0.22 for http2 if not provided , will there be issues if it is infinite also ?

Again. You need to upgrade. There issues with HTTP/2 timeouts in that
version.

Mark


>
>
> Thanks and Regards
> Arshiya Shariff
>
>
> -----Original Message-----
> From: Mark Thomas <[hidden email]>
> Sent: Wednesday, May 20, 2020 1:00 PM
> To: [hidden email]
> Subject: Re: RST on TCP level sent by Tomcat
>
> On 20/05/2020 07:02, Arshiya Shariff wrote:
>> Hi Team ,
>>
>> 1.We are facing a problem where tomcat is closing the http2 connections silently without sending GOAWAY and FIN. Under what cases does this happen ?
>
> Tomcat always tries to write the GOAWAY frame. Network issues may prevent the client receiving it.
>
>> 2. What happens when maxkeepaliverequests reaches the configured limit, will it close connections silently?
>
> Nothing. The limit does not exist in HTTP/2.
>
>> 3. What happens when max Connections is reached, will it close older connections?
>
> No. New connections will have to wait until a connection is available.
>
>> 4. Currently we see keepalive timeout is default 20 seconds, but the connection is not closed after that.   For requests received after 3 hours also we are sending response .Is there any way to close idle-connections ?
>
> Again, please upgrade and re-test.
>
> The keep-alive timeout only applies once the entire connection is idle - i.e. there are no currently processing streams.
>
> Mark
>
>
>>
>> Embedded Tomcat         : 9.0.22
>>
>> Thanks and Regards
>> Arshiya Shariff
>>
>>
>> -----Original Message-----
>> From: Arshiya Shariff
>> Sent: Monday, May 18, 2020 4:45 PM
>> To: Mark Thomas <[hidden email]>; [hidden email]
>> Cc: M Venkata Pratap M <[hidden email]>
>> Subject: RE: RST on TCP level sent by Tomcat
>>
>> Hi Mark,
>> Thank you for the quick response.
>>
>> Please provide us a little more clarity on the 3rd query :
>>
>> 3. We see that RST is sent by tomcat on receiving http2 request, when  does this happen ?
>>>>> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>>
>>  Why does tomcat not send GOAWAY on connection close, upon next request from client it sends RST ?
>>
>> Also, Can you please send us the references to the timeout related fixes in 9.0.35 (since 9.0.22).
>>
>> Thanks and Regards
>> Arshiya Shariff
>>
>>
>>
>> -----Original Message-----
>> From: Mark Thomas <[hidden email]>
>> Sent: Monday, May 18, 2020 4:17 PM
>> To: [hidden email]
>> Subject: Re: RST on TCP level sent by Tomcat
>>
>> On 18/05/2020 11:01, Arshiya Shariff wrote:
>>> Hi Team,
>>>
>>> Can you please help us with the below queries :
>>
>> There have been various timeout related fixes since 9.0.22. Please upgrade to 9.0.35 and re-test.
>>
>>> 1. When does a http2 connection close ? We see that the
>>> keepAliveTimeout is
>>> 20 seconds by default, but it is not closing the connection on
>>> keepAliveTimeout.
>>
>> Please re-test with 9.0.35.
>>
>>> 2. How to keep the connections alive / How to enable ping frames to
>>> be sent to the other end to keep the connection alive ?
>>
>> There is no standard API to send an HTTP/2 ping. If you want to keep the connections alive for longer, use a longer keep-alive setting.
>>
>>> 3. We see that RST is sent by tomcat on receiving http2 request, when
>>> does this happen ?
>>
>> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>>
>>> 4. What are the recommended ipv4.tcp settings for these kind of scenarios ?
>>
>> There are no recommended settings.
>>
>> Mark
>>
>>
>>>
>>>
>>>
>>> Embedded Tomcat         : 9.0.22
>>>
>>> Java Version                     : 1.8.0.201
>>>
>>> Hardware                          : Red Hat Enterprise Linux Server release
>>> 7.4
>>>
>>>
>>>
>>> Thanks and Regards
>>>
>>> Arshiya Shariff
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

RE: RST on TCP level sent by Tomcat

Arshiya Shariff
Hi All,

1. How to set max connections and keepalive timeout  in http2 ?
The remaining properties are being set through IntrospectionUtils .

Embedded Tomcat         : 9.0.22

Thanks and Regards
Arshiya Shariff

-----Original Message-----
From: Mark Thomas <[hidden email]>
Sent: Wednesday, May 20, 2020 3:42 PM
To: [hidden email]
Subject: Re: RST on TCP level sent by Tomcat



On 20/05/2020 10:07, Arshiya Shariff wrote:
> Hi Mark,
> Thank you for the response.
>
> Getting back on Query 3 and 4.
>
>>>> There are no active streams and still connection is not being closed by tomcat , and after sometime for new requests tomcat is sending RST.
>>>> As it is a production issue, it's hard for us to reproduce this at our end and retest.
>
>   1.How long does new connection have to wait when connection limit reached , when TCP closed it with RST for    such waiting connections ?

That will depend on the client's connection timeout. Tomcat has no control over that.

>  2.What is the idle timeout in 9.0.22 for http2 if not provided , will there be issues if it is infinite also ?

Again. You need to upgrade. There issues with HTTP/2 timeouts in that version.

Mark


>
>
> Thanks and Regards
> Arshiya Shariff
>
>
> -----Original Message-----
> From: Mark Thomas <[hidden email]>
> Sent: Wednesday, May 20, 2020 1:00 PM
> To: [hidden email]
> Subject: Re: RST on TCP level sent by Tomcat
>
> On 20/05/2020 07:02, Arshiya Shariff wrote:
>> Hi Team ,
>>
>> 1.We are facing a problem where tomcat is closing the http2 connections silently without sending GOAWAY and FIN. Under what cases does this happen ?
>
> Tomcat always tries to write the GOAWAY frame. Network issues may prevent the client receiving it.
>
>> 2. What happens when maxkeepaliverequests reaches the configured limit, will it close connections silently?
>
> Nothing. The limit does not exist in HTTP/2.
>
>> 3. What happens when max Connections is reached, will it close older connections?
>
> No. New connections will have to wait until a connection is available.
>
>> 4. Currently we see keepalive timeout is default 20 seconds, but the connection is not closed after that.   For requests received after 3 hours also we are sending response .Is there any way to close idle-connections ?
>
> Again, please upgrade and re-test.
>
> The keep-alive timeout only applies once the entire connection is idle - i.e. there are no currently processing streams.
>
> Mark
>
>
>>
>> Embedded Tomcat         : 9.0.22
>>
>> Thanks and Regards
>> Arshiya Shariff
>>
>>
>> -----Original Message-----
>> From: Arshiya Shariff
>> Sent: Monday, May 18, 2020 4:45 PM
>> To: Mark Thomas <[hidden email]>; [hidden email]
>> Cc: M Venkata Pratap M <[hidden email]>
>> Subject: RE: RST on TCP level sent by Tomcat
>>
>> Hi Mark,
>> Thank you for the quick response.
>>
>> Please provide us a little more clarity on the 3rd query :
>>
>> 3. We see that RST is sent by tomcat on receiving http2 request, when  does this happen ?
>>>>> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>>
>>  Why does tomcat not send GOAWAY on connection close, upon next request from client it sends RST ?
>>
>> Also, Can you please send us the references to the timeout related fixes in 9.0.35 (since 9.0.22).
>>
>> Thanks and Regards
>> Arshiya Shariff
>>
>>
>>
>> -----Original Message-----
>> From: Mark Thomas <[hidden email]>
>> Sent: Monday, May 18, 2020 4:17 PM
>> To: [hidden email]
>> Subject: Re: RST on TCP level sent by Tomcat
>>
>> On 18/05/2020 11:01, Arshiya Shariff wrote:
>>> Hi Team,
>>>
>>> Can you please help us with the below queries :
>>
>> There have been various timeout related fixes since 9.0.22. Please upgrade to 9.0.35 and re-test.
>>
>>> 1. When does a http2 connection close ? We see that the
>>> keepAliveTimeout is
>>> 20 seconds by default, but it is not closing the connection on
>>> keepAliveTimeout.
>>
>> Please re-test with 9.0.35.
>>
>>> 2. How to keep the connections alive / How to enable ping frames to
>>> be sent to the other end to keep the connection alive ?
>>
>> There is no standard API to send an HTTP/2 ping. If you want to keep the connections alive for longer, use a longer keep-alive setting.
>>
>>> 3. We see that RST is sent by tomcat on receiving http2 request,
>>> when does this happen ?
>>
>> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>>
>>> 4. What are the recommended ipv4.tcp settings for these kind of scenarios ?
>>
>> There are no recommended settings.
>>
>> Mark
>>
>>
>>>
>>>
>>>
>>> Embedded Tomcat         : 9.0.22
>>>
>>> Java Version                     : 1.8.0.201
>>>
>>> Hardware                          : Red Hat Enterprise Linux Server release
>>> 7.4
>>>
>>>
>>>
>>> Thanks and Regards
>>>
>>> Arshiya Shariff
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]
Reply | Threaded
Open this post in threaded view
|

RE: RST on TCP level sent by Tomcat

Arshiya Shariff
Hi Mark ,

1.Currently we have configured max http2 threads as 40 , but tomcat is allowing more than 300 connections , is there a way to check how many http2 connections tomcat will allow ?

2. Is maxThreads the maxConnections Or is there any other way to set max connections ?
We are setting properties by extending the Connector.java class.

Embedded Tomcat         : 9.0.22

Thanks and Regards
Arshiya Shariff

-----Original Message-----
From: Mark Thomas <[hidden email]>
Sent: Wednesday, May 20, 2020 3:42 PM
To: [hidden email]
Subject: Re: RST on TCP level sent by Tomcat



On 20/05/2020 10:07, Arshiya Shariff wrote:
> Hi Mark,
> Thank you for the response.
>
> Getting back on Query 3 and 4.
>
>>>> There are no active streams and still connection is not being closed by tomcat , and after sometime for new requests tomcat is sending RST.
>>>> As it is a production issue, it's hard for us to reproduce this at our end and retest.
>
>   1.How long does new connection have to wait when connection limit reached , when TCP closed it with RST for    such waiting connections ?

That will depend on the client's connection timeout. Tomcat has no control over that.

>  2.What is the idle timeout in 9.0.22 for http2 if not provided , will there be issues if it is infinite also ?

Again. You need to upgrade. There issues with HTTP/2 timeouts in that version.

Mark


>
>
> Thanks and Regards
> Arshiya Shariff
>
>
> -----Original Message-----
> From: Mark Thomas <[hidden email]>
> Sent: Wednesday, May 20, 2020 1:00 PM
> To: [hidden email]
> Subject: Re: RST on TCP level sent by Tomcat
>
> On 20/05/2020 07:02, Arshiya Shariff wrote:
>> Hi Team ,
>>
>> 1.We are facing a problem where tomcat is closing the http2 connections silently without sending GOAWAY and FIN. Under what cases does this happen ?
>
> Tomcat always tries to write the GOAWAY frame. Network issues may prevent the client receiving it.
>
>> 2. What happens when maxkeepaliverequests reaches the configured limit, will it close connections silently?
>
> Nothing. The limit does not exist in HTTP/2.
>
>> 3. What happens when max Connections is reached, will it close older connections?
>
> No. New connections will have to wait until a connection is available.
>
>> 4. Currently we see keepalive timeout is default 20 seconds, but the connection is not closed after that.   For requests received after 3 hours also we are sending response .Is there any way to close idle-connections ?
>
> Again, please upgrade and re-test.
>
> The keep-alive timeout only applies once the entire connection is idle - i.e. there are no currently processing streams.
>
> Mark
>
>
>>
>> Embedded Tomcat         : 9.0.22
>>
>> Thanks and Regards
>> Arshiya Shariff
>>
>>
>> -----Original Message-----
>> From: Arshiya Shariff
>> Sent: Monday, May 18, 2020 4:45 PM
>> To: Mark Thomas <[hidden email]>; [hidden email]
>> Cc: M Venkata Pratap M <[hidden email]>
>> Subject: RE: RST on TCP level sent by Tomcat
>>
>> Hi Mark,
>> Thank you for the quick response.
>>
>> Please provide us a little more clarity on the 3rd query :
>>
>> 3. We see that RST is sent by tomcat on receiving http2 request, when  does this happen ?
>>>>> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>>
>>  Why does tomcat not send GOAWAY on connection close, upon next request from client it sends RST ?
>>
>> Also, Can you please send us the references to the timeout related fixes in 9.0.35 (since 9.0.22).
>>
>> Thanks and Regards
>> Arshiya Shariff
>>
>>
>>
>> -----Original Message-----
>> From: Mark Thomas <[hidden email]>
>> Sent: Monday, May 18, 2020 4:17 PM
>> To: [hidden email]
>> Subject: Re: RST on TCP level sent by Tomcat
>>
>> On 18/05/2020 11:01, Arshiya Shariff wrote:
>>> Hi Team,
>>>
>>> Can you please help us with the below queries :
>>
>> There have been various timeout related fixes since 9.0.22. Please upgrade to 9.0.35 and re-test.
>>
>>> 1. When does a http2 connection close ? We see that the
>>> keepAliveTimeout is
>>> 20 seconds by default, but it is not closing the connection on
>>> keepAliveTimeout.
>>
>> Please re-test with 9.0.35.
>>
>>> 2. How to keep the connections alive / How to enable ping frames to
>>> be sent to the other end to keep the connection alive ?
>>
>> There is no standard API to send an HTTP/2 ping. If you want to keep the connections alive for longer, use a longer keep-alive setting.
>>
>>> 3. We see that RST is sent by tomcat on receiving http2 request,
>>> when does this happen ?
>>
>> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>>
>>> 4. What are the recommended ipv4.tcp settings for these kind of scenarios ?
>>
>> There are no recommended settings.
>>
>> Mark
>>
>>
>>>
>>>
>>>
>>> Embedded Tomcat         : 9.0.22
>>>
>>> Java Version                     : 1.8.0.201
>>>
>>> Hardware                          : Red Hat Enterprise Linux Server release
>>> 7.4
>>>
>>>
>>>
>>> Thanks and Regards
>>>
>>> Arshiya Shariff
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: RST on TCP level sent by Tomcat

markt
On 22/05/2020 07:39, Arshiya Shariff wrote:
> Hi Mark ,
>
> 1.Currently we have configured max http2 threads as 40 , but tomcat is allowing more than 300 connections , is there a way to check how many http2 connections tomcat will allow ?
>
> 2. Is maxThreads the maxConnections Or is there any other way to set max connections ?
> We are setting properties by extending the Connector.java class.

These are explained in the documentation:

http://tomcat.apache.org/tomcat-9.0-doc/config/http.html#Standard_Implementation

http://tomcat.apache.org/tomcat-9.0-doc/config/http2.html#Common_Attributes

Mark


>
> Embedded Tomcat         : 9.0.22
>
> Thanks and Regards
> Arshiya Shariff
>
> -----Original Message-----
> From: Mark Thomas <[hidden email]>
> Sent: Wednesday, May 20, 2020 3:42 PM
> To: [hidden email]
> Subject: Re: RST on TCP level sent by Tomcat
>
>
>
> On 20/05/2020 10:07, Arshiya Shariff wrote:
>> Hi Mark,
>> Thank you for the response.
>>
>> Getting back on Query 3 and 4.
>>
>>>>> There are no active streams and still connection is not being closed by tomcat , and after sometime for new requests tomcat is sending RST.
>>>>> As it is a production issue, it's hard for us to reproduce this at our end and retest.
>>
>>   1.How long does new connection have to wait when connection limit reached , when TCP closed it with RST for    such waiting connections ?
>
> That will depend on the client's connection timeout. Tomcat has no control over that.
>
>>  2.What is the idle timeout in 9.0.22 for http2 if not provided , will there be issues if it is infinite also ?
>
> Again. You need to upgrade. There issues with HTTP/2 timeouts in that version.
>
> Mark
>
>
>>
>>
>> Thanks and Regards
>> Arshiya Shariff
>>
>>
>> -----Original Message-----
>> From: Mark Thomas <[hidden email]>
>> Sent: Wednesday, May 20, 2020 1:00 PM
>> To: [hidden email]
>> Subject: Re: RST on TCP level sent by Tomcat
>>
>> On 20/05/2020 07:02, Arshiya Shariff wrote:
>>> Hi Team ,
>>>
>>> 1.We are facing a problem where tomcat is closing the http2 connections silently without sending GOAWAY and FIN. Under what cases does this happen ?
>>
>> Tomcat always tries to write the GOAWAY frame. Network issues may prevent the client receiving it.
>>
>>> 2. What happens when maxkeepaliverequests reaches the configured limit, will it close connections silently?
>>
>> Nothing. The limit does not exist in HTTP/2.
>>
>>> 3. What happens when max Connections is reached, will it close older connections?
>>
>> No. New connections will have to wait until a connection is available.
>>
>>> 4. Currently we see keepalive timeout is default 20 seconds, but the connection is not closed after that.   For requests received after 3 hours also we are sending response .Is there any way to close idle-connections ?
>>
>> Again, please upgrade and re-test.
>>
>> The keep-alive timeout only applies once the entire connection is idle - i.e. there are no currently processing streams.
>>
>> Mark
>>
>>
>>>
>>> Embedded Tomcat         : 9.0.22
>>>
>>> Thanks and Regards
>>> Arshiya Shariff
>>>
>>>
>>> -----Original Message-----
>>> From: Arshiya Shariff
>>> Sent: Monday, May 18, 2020 4:45 PM
>>> To: Mark Thomas <[hidden email]>; [hidden email]
>>> Cc: M Venkata Pratap M <[hidden email]>
>>> Subject: RE: RST on TCP level sent by Tomcat
>>>
>>> Hi Mark,
>>> Thank you for the quick response.
>>>
>>> Please provide us a little more clarity on the 3rd query :
>>>
>>> 3. We see that RST is sent by tomcat on receiving http2 request, when  does this happen ?
>>>>>> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>>>
>>>  Why does tomcat not send GOAWAY on connection close, upon next request from client it sends RST ?
>>>
>>> Also, Can you please send us the references to the timeout related fixes in 9.0.35 (since 9.0.22).
>>>
>>> Thanks and Regards
>>> Arshiya Shariff
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: Mark Thomas <[hidden email]>
>>> Sent: Monday, May 18, 2020 4:17 PM
>>> To: [hidden email]
>>> Subject: Re: RST on TCP level sent by Tomcat
>>>
>>> On 18/05/2020 11:01, Arshiya Shariff wrote:
>>>> Hi Team,
>>>>
>>>> Can you please help us with the below queries :
>>>
>>> There have been various timeout related fixes since 9.0.22. Please upgrade to 9.0.35 and re-test.
>>>
>>>> 1. When does a http2 connection close ? We see that the
>>>> keepAliveTimeout is
>>>> 20 seconds by default, but it is not closing the connection on
>>>> keepAliveTimeout.
>>>
>>> Please re-test with 9.0.35.
>>>
>>>> 2. How to keep the connections alive / How to enable ping frames to
>>>> be sent to the other end to keep the connection alive ?
>>>
>>> There is no standard API to send an HTTP/2 ping. If you want to keep the connections alive for longer, use a longer keep-alive setting.
>>>
>>>> 3. We see that RST is sent by tomcat on receiving http2 request,
>>>> when does this happen ?
>>>
>>> When things go wrong. E.g. when the client sends a request to a connection that has been closed.
>>>
>>>> 4. What are the recommended ipv4.tcp settings for these kind of scenarios ?
>>>
>>> There are no recommended settings.
>>>
>>> Mark
>>>
>>>
>>>>
>>>>
>>>>
>>>> Embedded Tomcat         : 9.0.22
>>>>
>>>> Java Version                     : 1.8.0.201
>>>>
>>>> Hardware                          : Red Hat Enterprise Linux Server release
>>>> 7.4
>>>>
>>>>
>>>>
>>>> Thanks and Regards
>>>>
>>>> Arshiya Shariff
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]