https://bz.apache.org/bugzilla/show_bug.cgi?id=59650

            Bug ID: 59650
           Summary: NIO2 connector does not respect executor bounds,
                    reuses NIO.2 threads for processing request on
                    connections
           Product: Tomcat 8
           Version: 8.0.x-trunk
          Hardware: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Connectors
          Assignee: dev@tomcat.apache.org
          Reporter: rsan...@gmail.com

Summary: On Async servlets, after one request is complete and the connection is
kept alive, the next request on this connection utilizes the Async channel
group thread that was used to (asynchronously) process the previous request.

Expected: All incoming requests should be processed by (or at least the
processing should start by) the attached executor on the connector.

More: It may be arguable that it is an implementation detail on how tomcat nio2
connector deals with async servlet requests, in this case it may use the
underlying async channel group threads to process another incoming request, but
it is wrong for the following reasons.
1) The next request coming on the connection may not be for an async servlet.
So semantically it should use the executor thread.
2) Application developer may have decided (which is a very common case)to have
their own executor internally to process all the async requests.

Problem: There is no way to limit the number of processing threads. Also a nice
to have feature would be to allow the user to control the number of threads
used by the underlying async channel group (that java NIO.2 uses for
callbacks). Currently tomcat8 just uses default which leads to an unbounded
number of threads.

-- 
You are receiving this mail because:
You are the assignee for the bug.

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

Reply via email to