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

Reply via email to