Re: is there a hard coded size limit to mod_jk response headers?

2007-01-16 Thread Takayuki Kaneko

Hi Yuri,

You will be able to configure the packetSize at standard coyote AJP Jk
handler on Tomcat 5.5.21.

http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/changelog.xml?r1=483339r2=485795diff_format=h

-Takayuki

On 1/14/07, Yuri de Wit [EMAIL PROTECTED] wrote:

I am getting a buffer overflow while using my webapp deployed to
Apache2, mod_jk1.2 and Tomcat5.5.17.

I am basically trying to send an HTTP response back to the browser
with a custom json header (X-JSON header) containing more than 8Kb
since this is the default way to send json state back to the browser
using Prototype.js.

My basic question is this: is there a hard-coded limit of 8Kb for HTTP
response headers?

If the answer is yes I could see this being a serious problem in a
world of AJAX where we not only want to send a XHTML snipped back to
the browser in the entity body, but also piggyback additional state in
the response.

I browsed the source code for Tomcat5.5.17 and found out that AJP13
sends 8Kb packets back to apachelib-mod_jk. For the response entity
body any number of 8Kb packets are sent, but for the response entity
header it seems that always only one 8Kb packet is sent.

I also found a post to this mailing list that although asked a similar
question, did end up providing a definite answer aside from how to
better log the problem
(http://www.mail-archive.com/tomcat-dev@jakarta.apache.org/msg73387.html).


And this is the exception I am seeing:
--
Jan 4, 2007 9:08:11 PM org.apache.jk.common.MsgAjp cpBytes
SEVERE: Buffer overflow: buffer.len=8192 pos=25 data=215738
Jan 4, 2007 9:08:11 PM org.apache.jk.common.MsgAjp cpBytes
SEVERE: Overflow
java.lang.Throwable
at org.apache.jk.common.MsgAjp.cpBytes(MsgAjp.java:172)
at org.apache.jk.common.MsgAjp.appendByteChunk(MsgAjp.java:146)
at org.apache.jk.common.MsgAjp.appendBytes(MsgAjp.java:132)
at org.apache.jk.common.JkInputStream.appendHead(JkInputStream.java:302)
at org.apache.jk.core.MsgContext.action(MsgContext.java:258)
at org.apache.coyote.Response.action(Response.java:182)
at org.apache.coyote.Response.sendHeaders(Response.java:378)
at org.apache.jk.common.JkInputStream.doWrite(JkInputStream.java:126)
at org.apache.coyote.Response.doWrite(Response.java:559)
at 
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:433)
at 
org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314)
at 
org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:278)
at 
org.apache.catalina.connector.Response.finishResponse(Response.java:476)
at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:754)
at 
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:684)
at 
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876)
at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
--

thanks,

-- yuri

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: is there a hard coded size limit to mod_jk response headers?

2007-01-16 Thread Yuri de Wit

Hi Takayuki,

Would that mean that still a single packet will be sent for HTTP
response headers?

In my case, the state I need to return in the entity header could be
in the order of 250K (the extreme case) and if I configure the packet
size to be ~300K, would that mean that all packets, including entity
body packets would take that size? I am sure there is a reason why 8K
size was choosen (not sure what 300K will mean to the performance).

Would it be better to send entity headers in the same way that entity
bodies are sent, i.e. N*8K? I understand that for 5.5.x this (if it
makes sense of course) is a bigger change, but maybe in 6.0?

thanks,

- yuri


On 1/16/07, Takayuki Kaneko [EMAIL PROTECTED] wrote:

Hi Yuri,

You will be able to configure the packetSize at standard coyote AJP Jk
handler on Tomcat 5.5.21.

http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/changelog.xml?r1=483339r2=485795diff_format=h

-Takayuki

On 1/14/07, Yuri de Wit [EMAIL PROTECTED] wrote:
 I am getting a buffer overflow while using my webapp deployed to
 Apache2, mod_jk1.2 and Tomcat5.5.17.

 I am basically trying to send an HTTP response back to the browser
 with a custom json header (X-JSON header) containing more than 8Kb
 since this is the default way to send json state back to the browser
 using Prototype.js.

 My basic question is this: is there a hard-coded limit of 8Kb for HTTP
 response headers?

 If the answer is yes I could see this being a serious problem in a
 world of AJAX where we not only want to send a XHTML snipped back to
 the browser in the entity body, but also piggyback additional state in
 the response.

 I browsed the source code for Tomcat5.5.17 and found out that AJP13
 sends 8Kb packets back to apachelib-mod_jk. For the response entity
 body any number of 8Kb packets are sent, but for the response entity
 header it seems that always only one 8Kb packet is sent.

 I also found a post to this mailing list that although asked a similar
 question, did end up providing a definite answer aside from how to
 better log the problem
 (http://www.mail-archive.com/tomcat-dev@jakarta.apache.org/msg73387.html).


 And this is the exception I am seeing:
 
--
 Jan 4, 2007 9:08:11 PM org.apache.jk.common.MsgAjp cpBytes
 SEVERE: Buffer overflow: buffer.len=8192 pos=25 data=215738
 Jan 4, 2007 9:08:11 PM org.apache.jk.common.MsgAjp cpBytes
 SEVERE: Overflow
 java.lang.Throwable
 at org.apache.jk.common.MsgAjp.cpBytes(MsgAjp.java:172)
 at org.apache.jk.common.MsgAjp.appendByteChunk(MsgAjp.java:146)
 at org.apache.jk.common.MsgAjp.appendBytes(MsgAjp.java:132)
 at 
org.apache.jk.common.JkInputStream.appendHead(JkInputStream.java:302)
 at org.apache.jk.core.MsgContext.action(MsgContext.java:258)
 at org.apache.coyote.Response.action(Response.java:182)
 at org.apache.coyote.Response.sendHeaders(Response.java:378)
 at org.apache.jk.common.JkInputStream.doWrite(JkInputStream.java:126)
 at org.apache.coyote.Response.doWrite(Response.java:559)
 at 
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
 at 
org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:433)
 at 
org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314)
 at 
org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:278)
 at 
org.apache.catalina.connector.Response.finishResponse(Response.java:476)
 at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
 at 
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
 at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
 at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:754)
 at 
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:684)
 at 
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876)
 at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
 at java.lang.Thread.run(Thread.java:595)
 
--

 thanks,

 -- yuri

 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: is there a hard coded size limit to mod_jk response headers?

2007-01-16 Thread Fisher, Mitchell L
Hi, could you elaborate?  Will a matching mod_jk update be needed?

-Mitch

-Original Message-
From: Takayuki Kaneko [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, January 16, 2007 3:45 AM
To: Tomcat Developers List
Subject: Re: is there a hard coded size limit to mod_jk response
headers?

Hi Yuri,

You will be able to configure the packetSize at standard coyote AJP Jk
handler on Tomcat 5.5.21.

http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/chang
elog.xml?r1=483339r2=485795diff_format=h

-Takayuki

On 1/14/07, Yuri de Wit [EMAIL PROTECTED] wrote:
 I am getting a buffer overflow while using my webapp deployed to
 Apache2, mod_jk1.2 and Tomcat5.5.17.

 I am basically trying to send an HTTP response back to the browser
 with a custom json header (X-JSON header) containing more than 8Kb
 since this is the default way to send json state back to the browser
 using Prototype.js.

 My basic question is this: is there a hard-coded limit of 8Kb for HTTP
 response headers?

 If the answer is yes I could see this being a serious problem in a
 world of AJAX where we not only want to send a XHTML snipped back to
 the browser in the entity body, but also piggyback additional state in
 the response.

 I browsed the source code for Tomcat5.5.17 and found out that AJP13
 sends 8Kb packets back to apachelib-mod_jk. For the response entity
 body any number of 8Kb packets are sent, but for the response entity
 header it seems that always only one 8Kb packet is sent.

 I also found a post to this mailing list that although asked a similar
 question, did end up providing a definite answer aside from how to
 better log the problem

(http://www.mail-archive.com/tomcat-dev@jakarta.apache.org/msg73387.html
).


 And this is the exception I am seeing:


--
 Jan 4, 2007 9:08:11 PM org.apache.jk.common.MsgAjp cpBytes
 SEVERE: Buffer overflow: buffer.len=8192 pos=25 data=215738
 Jan 4, 2007 9:08:11 PM org.apache.jk.common.MsgAjp cpBytes
 SEVERE: Overflow
 java.lang.Throwable
 at org.apache.jk.common.MsgAjp.cpBytes(MsgAjp.java:172)
 at
org.apache.jk.common.MsgAjp.appendByteChunk(MsgAjp.java:146)
 at org.apache.jk.common.MsgAjp.appendBytes(MsgAjp.java:132)
 at
org.apache.jk.common.JkInputStream.appendHead(JkInputStream.java:302)
 at org.apache.jk.core.MsgContext.action(MsgContext.java:258)
 at org.apache.coyote.Response.action(Response.java:182)
 at org.apache.coyote.Response.sendHeaders(Response.java:378)
 at
org.apache.jk.common.JkInputStream.doWrite(JkInputStream.java:126)
 at org.apache.coyote.Response.doWrite(Response.java:559)
 at
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.j
ava:361)
 at
org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:433)
 at
org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314
)
 at
org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:278)
 at
org.apache.catalina.connector.Response.finishResponse(Response.java:476)
 at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
51)
 at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
 at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
 at
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:754)
 at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:
684)
 at
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.
java:876)
 at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:684)
 at java.lang.Thread.run(Thread.java:595)


--

 thanks,

 -- yuri

 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]