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