Description of problem: Using NIO with async servlets can improperly lead to a processor and its request/response objects being used by multiple threads to process different requests at once. The problem arises in Http11NioProtocol.event(). If two events occur on the same channel and execute this at the same time, it'll lead to this issue if they result in a SocketState other than LONG. When that happens, they both offer the same processor to recycledProcessors in the finally block. Later on, two different requests can then poll the same processor at once from reycledProcessors; a processor should only ever have one entry in recycledProcessors. It looks like we need to synch the Http11NioProtocol.event() call or the NioEndpoint.ChannelProcessor.run(). Version-Release number of selected component (if applicable): 7.2.2.Final
Fixed by r2405: requires a patch or a next jbossweb tag.
The patch applied in dist-git for productization rebuild: http://pkgs.devel.redhat.com/cgit/rpms/jbossweb/commit/?id=11b7067 MEAD build: https://brewweb.devel.redhat.com/buildinfo?buildID=353808 RPM6 wrapper: https://brewweb.devel.redhat.com/buildinfo?buildID=353809 RPM5 wrapper: https://brewweb.devel.redhat.com/buildinfo?buildID=353810 RPM7 wrapper: https://brewweb.devel.redhat.com/buildinfo?buildID=353811 PR for EAP: https://github.com/jbossas/jboss-eap/pull/1278
Thanks :)
the new jbossweb tag (7.4.2.Final) also has the fix.
Solved by component upgrade. Since the upgrade also fixes https://bugzilla.redhat.com/show_bug.cgi?id=1091849 which is a beta blocker, am resolving this one for ER3
Verified in EAP 6.3.0.ER3