-----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

Reply via email to