Hello,
thank you for your quick patches on #62177. I have tested a lot and
found that it now works much better.
During my tests I found there are still unstabilities / issues that
would prevent me from productive use:
- While testing with [localhost], everything is fine. But when loding
the PrimeFaces showcase through a slow internet connection, using
SSL+HTTP/1.1 seemes a lot faster than HTTP2 with serverPush. I also
again get write attempts to closed streams in server log in this case.
- The rendering of base HTML output is blocked by writing the
PUSH_PROMISE headers: CPU-sampling shows that the server spends most
time in Http2[Async]UpgradeHandler.writeHeaders(..) and .push(..).
- Maybe as expected, 'nested' resources don't get pushed at all, because
their PUSH_PROMISE would go into an illegal Stream what your patch
successfully prevents.
Wouldn't it be possible, to ..
- delegate PUSH_PROMISE writing + subsequent internal request and
StramRunnable creation to a "PushRunnable"
- hand over a reference to the real client initiated Stream into the
"PushRunnable"
- FIFO-queue "PushRunnable" instances for execution in another Thread
such that the application does not get blocked for writing the
PUSH_PROMISEs and maybe even nested resources getting pushed?
Or is it that accessing the inital client initiated Stream from
nested-resource pushing Thread is absolutly unsafe / wrong operation?
Kind regards
Holger Sunke
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org