On 25/09/2020 15:47, Arshiya Shariff wrote:
> Thanks for the response Martin.
> 
> Below is the only exception we are getting in the logs while sending response 
> to a closed stream , few times with MUST_COMPLETE instead of MUST_ERROR :
> Exception occurred while sending response. ExceptionMessage:Calling 
> [asyncComplete()] is not valid for a request with Async state [MUST_ERROR]

That suggests issues with error handling. Either errors not being
handled or some sort of threading issue.

If you attempt to write to a closed stream Tomcat should simply swallow
the data and not send it to the client.

The only reason Tomcat will send a GOAWAY frame in normal usage if there
is a connection level error.

Mark

> 
> Thanks and Regards
> Arshiya Shariff
> 
> -----Original Message-----
> From: Martin Grigorov <mgrigo...@apache.org> 
> Sent: Friday, September 25, 2020 4:37 PM
> To: Tomcat Users List <users@tomcat.apache.org>
> Subject: Re: HTTP2: Tomcat sends GOAWAY when trying to respond over a stream 
> where the client has already sent RST_STREAM:NO ERROR
> 
> On Fri, Sep 25, 2020 at 1:18 PM Arshiya Shariff 
> <arshiya.shar...@ericsson.com.invalid> wrote:
> 
>> Thanks Martin .
>>
>> Our expectation Is that , on receiving a RST_STREAM with CANCEL or 
>> NO_ERROR from the client after 1.5 secs for a particular stream , we 
>> don’t want the connection to be closed  with a GOAWAY:NO_ERROR  (while 
>> trying to send response after 2secs asynchronously over a stream that 
>> is closed) as the other streams during the same time are processing data 
>> fine .
>>
>> Additional info for GOAWAY: Connection [], Stream[],An error occurred 
>> during processing that was fatal to the connection .
>>
> 
> I guess some other error happened and that led to the GOAWAY. But I cannot be 
> sure.
> Any errors in the logs ?
> 
> 
>>
>> Thanks and Regards
>> Arshiya Shariff
>>
>> -----Original Message-----
>> From: Martin Grigorov <mgrigo...@apache.org>
>> Sent: Tuesday, September 22, 2020 7:31 PM
>> To: Tomcat Users List <users@tomcat.apache.org>
>> Subject: Re: HTTP2: Tomcat sends GOAWAY when trying to respond over a 
>> stream where the client has already sent RST_STREAM:NO ERROR
>>
>> Hi,
>>
>> On Tue, Sep 22, 2020 at 1:47 PM Arshiya Shariff < 
>> arshiya.shar...@ericsson.com.invalid> wrote:
>>
>>> Thank you so much Martin for the response.
>>>  Yes , 9.0.38 testing is on going .
>>>
>>> As we don’t get this clear with the RFC , please help us with the 
>>> below two cases :
>>
>>   * If a client sends RST_STREAM with NO_ERROR, then while sending 
>> async
>>> response is it expected behavior to close connection with GOAWAY ?
>>>   * If a client sends RST_STREAM with CANCEL , then while sending 
>>> async response will tomcat send RST_STREAM or GOAWAY , from http2 
>>> protocol perspective ?
>>>
>>
>> As per https://tools.ietf.org/html/rfc7540#section-6.4 and
>> https://tools.ietf.org/html/rfc7540#section-5.1 if "send R" or "recv R"
>> are processed then the stream is moved to CLOSED state.
>> GOAWAY should be sent to the client only if the connection will be 
>> closed ( https://tools.ietf.org/html/rfc7540#section-6.8). The server 
>> should close the connection only if some serious problem has happened, 
>> e.g. an IOException.
>>
>> Tell us more about your use case. What do you want to do when 1.5secs 
>> pass ? What do you expect to happen ?
>>
>>
>>>
>>> Thanks and Regards
>>> Arshiya Sharif
>>>
>>> -----Original Message-----
>>> From: Martin Grigorov <mgrigo...@apache.org>
>>> Sent: Tuesday, September 22, 2020 1:18 AM
>>> To: Tomcat Users List <users@tomcat.apache.org>
>>> Subject: Re: HTTP2: Tomcat sends GOAWAY when trying to respond over 
>>> a stream where the client has already sent RST_STREAM:NO ERROR
>>>
>>> Hi,
>>>
>>> On Mon, Sep 21, 2020 at 7:56 PM Arshiya Shariff < 
>>> arshiya.shar...@ericsson.com.invalid> wrote:
>>>
>>>> Hi All,
>>>>
>>>> The client has configured a response timeout of 1.5 seconds. In a 
>>>> case when our application tries to respond over a http2 stream 
>>>> asynchronously after 2 seconds where the client has already sent 
>>>> RST_STREAM with NO ERROR in 1.5 seconds
>>>
>>>
>>> Why does the client send NO_ERROR to the server ? I think it should 
>>> send a CANCEL instead.
>>> https://tools.ietf.org/html/rfc7540 mentions NO_ERROR only for 
>>> "Graceful shutdown of the server".
>>>
>>>
>>>> (due to no response) , then tomcat sends GOAWAY and closes the 
>>>> HTTP2 connection . Is this behavior of GOAWAY and connection 
>>>> closure
>> expected ?
>>>> We have planned to upgrade to Embedded tomcat version 9.0.38 . 
>>>> These are the behaviors we see in production with version 9.0.22 ,  
>>>> so we need some help with analyzing / validating  the existing 
>>>> behavior before
>>> the upgrade .
>>>> Please let us know.
>>>>
>>>
>>> Friendly advice:
>>> Please setup 9.0.38 locally and test on it.
>>> 9.0.22 is way too old. It is up to you to use it for your production 
>>> but for reporting bugs it is recommended to use the latest available
>> version.
>>> I, personally, prefer to spend my spare time with my family and 
>>> friends than to debug old versions just because the user doesn't 
>>> bother to test on a newer version.
>>>
>>>
>>>>
>>>> Thanks and Regards
>>>> Arshiya Shariff
>>>>
>>>
>>> --------------------------------------------------------------------
>>> - To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 


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

Reply via email to