On 12/05/2014 18:32, Rémy Maucherat wrote: > 2014-05-12 16:25 GMT+02:00 Mark Thomas <ma...@apache.org>: > >> >> In terms of whether there is a better place, I didn't look lower down >> the stack. We probably only want to swallow this if we haven't read any >> part of the request line. >> > Ok, I'll add back the two try/catch I removed, I should have cleaned up > the "bad" cases where the completion handler from the buffer is pending, > but the processor is recycled. Hopefully ;) > (if not, hey, it's still "beta")
Hmm. This isn't being triggered by shut down. I still see the ReadPendingException if I add a breakpoint to one of the TestCoyoteOutputStream unit tests before shut down starts. It does appear that there is some form of timing issue that is triggering multiple read events for the same thread. I'm trying to track it down but the catch that I put in originally needs to be removed. ... a few hours go by... I think I have got to the bottom of this. An async dispatch always adds the socket to the poller but if the dispatch occurs on a container thread then it will also be added to the poller when that thread exits the AbstractConnectionHandler.process() method. This looks like a bug with all the connectors but one that is more obvious with Nio2 because it triggers the ReadPendingException. Fixing this bug highlighted a minor issue on shutdown. I have a fix for that too. Commits to follow shortly. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org