Hello Mark,

I did some further investigations. I hope I don’t bother you with this topic.

I was trying to narrow down the tomcat version where the problem started to 
appear.
The problem with the interrupted connection started with 10.0.0-M8
With Tomcat 10.0.0-M7 everything works fine.

Comparing the sources, there are some (maybe relevant) changes in the 
org.apache.coyote.http2 package from M7 --> M8:
- Http2AsynUpgradeHandler
- Http2UpgradeHandler
- Stream
- StreamProcessor

The observed problem was, that the browser (firefox) was sending a RST_Stream 
packet to close a single stream within the http2 protocol
and tomcat was closing the whole connection instead of closing just that stream 
(wireshark dump would be available).

In Stream.java a new method "doStreamCancel" was introduced (or an old method 
was renamed) with release M8.
This looks related to the observed problem mentioned above.

Does this information help to take a look again at this problem?
If I should try something or can assist with testing, just let me know.

Thanks!
Thomas




> -----Ursprüngliche Nachricht-----
> Von: Thomas Hoffmann (Speed4Trade GmbH)
> <thomas.hoffm...@speed4trade.com.INVALID>
> Gesendet: Dienstag, 5. Juli 2022 09:59
> An: Tomcat Users List <users@tomcat.apache.org>
> Betreff: AW: AW: Tomcat 10 with Http2 and compression sometimes closes
> connection with Firefox
> 
> Hallo Mark,
> 
> > -----Ursprüngliche Nachricht-----
> > Von: Mark Thomas <ma...@apache.org>
> > Gesendet: Montag, 4. Juli 2022 19:37
> > An: users@tomcat.apache.org
> > Betreff: Re: AW: Tomcat 10 with Http2 and compression sometimes closes
> > connection with Firefox
> >
> > On 30/06/2022 07:40, Mark Thomas wrote:
> >
> > <snip/>
> >
> > > I think I'm going to need the sample app to investigate this.
> >
> > I have received the sample application and can recreate the issue.
> >
> > Going back to your original summary:
> >
> > <quote>
> > 1) Main page was requested by Firefox from Tomcat (GET ...)
> > 2) Tomcat sends the first compressed chunks of data to the browser
> > 3) Firefox reads the first packages and notices, that additional
> > resources are needed (CSS, JS ...)
> > 4) While Tomcat is still sending the main page in chunks, the browser
> > is already requesting additional resources on other channels
> > 5) Firefox is sending a RST_STREAM and closes that last requested
> > stream(s)  (dunno why it does request first and then closes the
> > channel)
> > 6) Tomcat is sending a GoAway message to the browser
> > 7) Tomcat stops also sending the main page (on a different channel)
> > </quote>
> >
> > I tested with 10.0.x.
> >
> > I don't see the above sequence.
> >
> > I ran the test 4 times, closing the browser between each test
> >
> > When things go wrong it appears that FireFox is re-using the main page
> > (ticket.jsp) from a cache.
> >
> > I see the additional resources being requested and then cancelled.
> >
> > I do not see any GOAWAY messages from Tomcat.
> >
> > I do see a single GOAWAY message from the browser to Tomcat when I
> > close the browser window (as expected).
> >
> > I don't see anything going wrong on the Tomcat side.
> >
> > At the moment, this looks to me like an issue with Firefox rather than
> > with Tomcat.
> >
> > If you can narrow the test case to something that shows Tomcat doing
> > something wrong, then I'd be happy to look at this again.
> >
> > Mark
> >
> > ---------------------------------------------------------------------
> 
> Thank you very much for taking a look at it!
> 
> I could also see that the browser cache is used sometimes. Sometimes the
> jsp is requested from the server, sometimes not.
> 
> I did several tests again and the behaviour is not very consistent, thus it's
> hard to get a handle on the problem.
> I was also thinking about the possibility of a Firefox bug but this wouldn’t
> explain that:
> 1) It only happens with Tomcat 10.x and doesn’t show up with Tomcat 9.x
> 2) Users don’t report any problems with other internet websites (using
> Firefox)
> 
> The GoAway seems to be sent from time to time by Tomcat, but not always.
> I recorded one session which matches my last description:
> https://privfile.com/download.php?fid=62c3ec1170199-MTM2OTM=
> I set up another PC for testing, thus the IP addresses (source/target) differ
> and can be interpreted more easily.
> Maybe the last Capture was not readable without the keyfile, thus I
> exported it differently and it should be readable now.
> 
> a) Is the behaviour according to the linked network trace an expected
> behaviour? (sending a GoAway after a rst_stream message)
> b) Have you been able to reproduce the error with Tomcat 9.x?
> 
> If you have any hints or suggestions, how I could narrow it down, please drop
> a line.
> I don’t have any big or great ideas at the moment.
> 
> Thank you very much!
> Thomas
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to