On 16/06/2021 21:52, Christopher Schultz wrote:
Mark,

On 6/16/21 14:10, Mark Thomas wrote:
On 16/06/2021 18:47, Rémy Maucherat wrote:
On Wed, Jun 16, 2021 at 7:36 PM Mark Thomas <ma...@apache.org> wrote:

On 16/06/2021 18:01, Deshmukh, Kedar wrote:

I have one additional question at this point. How easy is this issue to
reproduce? Does it happen every time? In 10% of requests? 1% ?

[Kedar] It is reproducible 9/10 times in my environment. So 90% time it
is reproducible when concurrency is 5 or more and file sizes are between
1GB-5GB.

Thanks for the confirmation. I have converted your test classes into a
Tomcat unit test (easy for me to work with) and the issue looks to be
repeatable on Linux with the latest 10.1.x code.

I'm starting to look at this now. I'll post again when I have more
information. I'm not expecting this to be quick.

Kedar,

If you set useAsyncIO="false" on the Connector that should work around the problem for now. The Servlet Async API will still be available. Tomcat just uses a different code path to write to the network.

I did not expect it would be so easy to reproduce. Can you commit the test ?

It is a bit of a hack at the moment. The code isn't particularly clean and I have hard-coded some file paths for my system (I have a bunch of 5GB Windows MSDN ISOs I am using for the large files. I also don't think we want test cases that using multi-GB files running on every test run.

If I clean things up a bit, parameterise the hard-coded paths bits and disable the test by default it should be in a reasonable state to commit.

It looks very much like the vectoredOperation and the associated semaphore is where things are going wrong.

I'm aiming to work on this some more tomorrow.

Is it inadvisable to use a trivial JSP or Servlet that just generates X bytes? Or does this require the use of the DefaultServlet at the moment?

Right now, I don't know.

Is it still possible to reproduce using smaller window sizes and smaller total resource sizes? It would be nice if a unit-test didn't have to transfer 5GiB even through the loopback interface.

I may have a better answer after I do some further investigation tomorrow.

Mark

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

Reply via email to