You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Mark Thomas <ma...@apache.org> on 2019/06/06 19:24:36 UTC

HTTP/2 priorities

Hi,

You may recall that running some HTTP/2 prioritisation tests against
Tomcat was on my TODO list after the HTTP workshop. I was able to do
that today and the results are interesting. There are two main findings.

Tomcat only applies prioritisation once the connection window is empty.
Up to that point any thread with data to write has an equal chance since
it is the thread that manages to get the SocketWrapper lock first that
is able to write. It appears that this was not what was intended.
Prioritisation should apply even if the connection window is not empty.
I am currently thinking about how this might be implemented.

The second issue appears to be around asyncIO. The results are messy
(unexpected closed connections and failed requests) when asyncIO is
used. I need to run the test again with debugging logging and see if I
can figure out what is going wrong. I'll post an update as and when I
make some progress.

Mark

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


Re: HTTP/2 priorities

Posted by Mark Thomas <ma...@apache.org>.
On 06/06/2019 20:24, Mark Thomas wrote:
> Hi,
> 
> You may recall that running some HTTP/2 prioritisation tests against
> Tomcat was on my TODO list after the HTTP workshop. I was able to do
> that today and the results are interesting. There are two main findings.
> 
> Tomcat only applies prioritisation once the connection window is empty.
> Up to that point any thread with data to write has an equal chance since
> it is the thread that manages to get the SocketWrapper lock first that
> is able to write. It appears that this was not what was intended.
> Prioritisation should apply even if the connection window is not empty.
> I am currently thinking about how this might be implemented.
> 
> The second issue appears to be around asyncIO. The results are messy
> (unexpected closed connections and failed requests) when asyncIO is
> used. I need to run the test again with debugging logging and see if I
> can figure out what is going wrong. I'll post an update as and when I
> make some progress.

I found a deadlock and think I have fixed it. The results are a lot more
stable now but it looks like there is another potential deadlock lurking
in the code somewhere.

Mark

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