On 09/12/2019 21:45, Rémy Maucherat wrote:
> On Mon, Dec 9, 2019 at 7:59 PM Mark Thomas <ma...@apache.org
> <mailto:ma...@apache.org>> wrote:
> 
>     On 09/12/2019 17:34, ma...@apache.org <mailto:ma...@apache.org> wrote:
>     > This is an automated email from the ASF dual-hosted git repository.
>     >
>     > markt pushed a commit to branch master
>     > in repository https://gitbox.apache.org/repos/asf/tomcat.git
>     >
>     >
>     > The following commit(s) were added to refs/heads/master by this push:
>     >      new dcc6ad5  Add a currently disabled test for async timeout
>     with HTTP/2
>     > dcc6ad5 is described below
>     >
>     > commit dcc6ad52ad6a3ca53ebc1270b89df9fbc6da2f31
>     > Author: Mark Thomas <ma...@apache.org <mailto:ma...@apache.org>>
>     > AuthorDate: Mon Dec 9 17:34:10 2019 +0000
>     >
>     >     Add a currently disabled test for async timeout with HTTP/2
> 
>     Note: This test isn't quite right yet. I'll commit the fix once I've
>     fixed the underlying issue. The issue is proving trickier than I thought
>     it would - mainly because it looks like I'm going to need to make a
>     bigger change than I really want to. I know what needs to happen, I'm
>     trying to figure out the best way to make it happen.
> 
> There's indeed a problem and it's a lot harder than I expected.
> With async the timeoutAsync goes nowhere as no processor gets added to
> the waitingProcessors.
> Without async, the timeout goes to the processor of the connection which
> isn't much better, it would have to go to the stream which was doing the
> async request (but it's not processed through the protocol, obviously).
> Either way it's not going to work :(

After looking at various options I opted to add a reference to the
Http11Protocol in the Http2Protocol and then added the SocketProcessor
to the waiting processors.

I have a patch but I need to finish cleaning up the test so it runs cleanly.

This has the added benefit that we can reassess the decision to repeat a
lot of the Http11Procotol config on the Http2Protocol. We could, if we
wished, just use the settings from the Http11Protocol. Something to
consider for Tomcat 10 maybe. I'll ask on the users list and see how
much interest there is in separate settings.

> Earlier, I wanted to remove the waitingProcessors from AbstractProtocol
> in favor of some processing in the endpoint. I found out that isn't a
> very good idea.
> Maybe instead the actual async timeout processing should be moved one
> level up (do them in the Catalina adapter, but as usual use a dispatch
> to do it when they happen). Would that work better ?

I'm not sure. First impression is that it would mean quite a few
changes. The timeout handling is currently internal to Coyote, this
would make it part of the Coyote/Catalina API. That doesn't seem quite
right to me at the moment.

Mark

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

Reply via email to