-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 All,
On 2/25/15 10:18 AM, Christopher Schultz wrote: > All, > > On 2/25/15 9:44 AM, Christopher Schultz wrote: >> All, > >> On 2/25/15 9:10 AM, Christopher Schultz wrote: >>> We are testing on Tomcat 8.0.17 and we have been getting >>> failures that look like this: > >>> SEVERE: Exception while dispatching incoming RPC call >>> java.lang.IllegalArgumentException at >>> java.nio.Buffer.limit(Buffer.java:275) at >>> org.apache.coyote.ajp.AjpNioProcessor.readSocket(AjpNioProcessor.java:179) > >>> >>> > >> at >>> org.apache.coyote.ajp.AjpNioProcessor.read(AjpNioProcessor.java:159) > >>> >>> > >> at >>> org.apache.coyote.ajp.AbstractAjpProcessor.readMessage(AbstractAjpProcessor.java:1067) > >>> >>> > >> at >>> org.apache.coyote.ajp.AbstractAjpProcessor.receive(AbstractAjpProcessor.java:1005) > >>> >>> > >> at >>> org.apache.coyote.ajp.AbstractAjpProcessor.refillReadBuffer(AbstractAjpProcessor.java:1131) > >>> The error message itself comes from GWT's server-side >>> component, but the exception indicates the failure is >>> occurring at the Tomcat level. We are re-testing with Tomcat >>> 8.0.20, as there have been some improvements to NIO, but I >>> wasn't sure if those changes would affect the AJP connector. > >>> We will also be testing on Tomcat 7.0.59. Is the NIO >>> implementation in Tomat 7 different (stable) enough that this >>> kind of (presumed) bug won't exist in that version? > >> Back in 7.0.59, and we are getting an immediate failure on login >> to our application, which is great because it's reproducible. >> Since the failure is being reported as part of a failure, it's >> looping forever with the same exception, filling the log file. I >> think this ought to be enough to see what might be happening. >> Stack trace follows the <Connector> configuration. Switching to >> the BIO connector solves all problems. > >> <Connector port="@connector-port@" redirectPort="443" >> protocol="org.apache.coyote.ajp.AjpNioProtocol" >> packetSize="65536" URIEncoding="UTF-8" >> executor="tomcatThreadPool" /> > >> Our packet size matches the configuration for mod_jk. > >> Feb 25, 2015 9:39:02 AM >> org.apache.catalina.core.ApplicationDispatcher invoke SEVERE: >> Servlet.service() for servlet velocity threw exception >> java.nio.BufferOverflowException at >> java.nio.HeapByteBuffer.put(HeapByteBuffer.java:189) at >> org.apache.coyote.ajp.AjpNioProcessor.output(AjpNioProcessor.java:305) > >> > > at >> org.apache.coyote.ajp.AbstractAjpProcessor$SocketOutputBuffer.doWrite(AbstractAjpProcessor.java:1228) > >> > > at org.apache.coyote.Response.doWrite(Response.java:499) >> at >> org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:402) > >> > > at >> org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480) > >> > > at >> org.apache.catalina.connector.OutputBuffer.realWriteChars(OutputBuffer.java:485) > >> > > at >> org.apache.tomcat.util.buf.CharChunk.flushBuffer(CharChunk.java:464) > >> > > at org.apache.tomcat.util.buf.CharChunk.append(CharChunk.java:302) >> at >> org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:527) > >> > > at >> org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.java:152) > >> > > at >> org.apache.velocity.io.VelocityWriter.flushBuffer(VelocityWriter.java:129) > >> > > at >> org.apache.velocity.io.VelocityWriter.write(VelocityWriter.java:306) > >> > > at >> org.apache.velocity.io.VelocityWriter.write(VelocityWriter.java:322) > >> > > at >> org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:491) > >> > > at >> org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) > >> > > at org.apache.velocity.Template.merge(Template.java:356) >> at org.apache.velocity.Template.merge(Template.java:260) at >> org.apache.velocity.tools.view.VelocityView.performMerge(VelocityView.java:942) > >> > > at >> org.apache.velocity.tools.view.VelocityView.merge(VelocityView.java:902) > >> > > at >> org.apache.velocity.tools.view.VelocityViewServlet.mergeTemplate(VelocityViewServlet.java:318) > >> > > at >> org.apache.velocity.tools.view.VelocityLayoutServlet.mergeTemplate(VelocityLayoutServlet.java:247) > >> > > at >> org.apache.velocity.tools.view.VelocityViewServlet.doRequest(VelocityViewServlet.java:220) > >> > > at >> org.apache.velocity.tools.view.VelocityViewServlet.doGet(VelocityViewServlet.java:182) > >> > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) > >> > > at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > >> > > at >> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) > >> > > at >> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:604) > >> > > at >> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:543) > >> > > at >> org.apache.struts.chain.commands.servlet.PerformForward.handleAsInclude(PerformForward.java:141) > >> > > at >> org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:92) > >> > > at >> org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54) > >> > > at >> org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) > >> > > at >> org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) > >> > > at >> org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305) > >> > > at >> org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) > >> > > at >> org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) > >> > > at >> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) > >> > > at >> org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) > >> > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) > >> Any ideas? > > This is also failing in 7.0.56, which I swear used to be working. > I'm investigating. We are running 7.0.57 in production and all seems well with the AjpNioProtocol. The same configuration with maxPacketSize="65536" in development fails with the above problem, but with the default packet size (8192), we see no problems. I'll try some other packet sizes to see if this is just a problem with 65536. Perhaps 2^16 is a particularly problematic buffer size. - -chris -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJU7eqvAAoJEBzwKT+lPKRYyjkP/0cIJyGSD8eMNilSRbYCqVa0 RmkGeTRK0rywEaZPkahIjCOBo5VMfOMTrugHiZu9i0p68K7VUynfeONi20hcyAnJ J1qxCDZskgWhQtoajEvXm5oGaeZ5TyCJUNKRa31ygnuR5EqN1PRt8VF221eMhEqN nPqQtz4DRtQcnk9wyPMNOFAdDkVRhzIiIyhwiG7Cu9AMpZdAHwHcKhwLVJnapFrm MjN0AiVLF3q4JAdBoyswjGM7nJthqxaI4Ux8zOusLeFDbIoy6IK1+y9ZlcIcWz6r S9yEz6qJS5mLuAq1iSeq3uLUwISPTMJfXONGnU6uUyFbHac9EcjLMQSJQEfwyjAB Z/v/v43gTa4sif3K7omWiqhAOstXBbIjGVxKHWH2lgkBM0AnslqMYdapQ6Q8Unfl r9Pe1ScV+zAWQp+krBpJ3qXmkbQGuOIV49sCpjFJD6s1f4SajxueryaogvJzRLcy BfgRkxsBDrjbsfEPjHHDi7w2o81Mvh/PToH1HLw8QysftZhcg2qJrX4YP6+XER7N xt4Z5bhniI4BAMLjNjleIDCzJRy+WmoIOYZEOlzarywguIFxg2BjNb794RfV4f4v 2VS7IBjyWsozyM8zmluTD2jrCHok5ESyil+FAH+uQSplX6IfGqpCe3Z9bW4qSxZ4 y7Ta7oEojJ9OYyCc4gZF =Vgsx -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org