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]



AJP Connector enableLookups

2006-11-24 Thread Fisher, Mitchell L
I have a question about the behavior of the Tomcat AJP Connector.  When
my mod_jk equivalent sends the remote host name in AJP, the servlet's
call to getRemoteHost() returns the IP address if enableLookups is set
false in the connector, and returns the remote host supplied by the
front-end server if enableLookups is true.  I am using snoop.jsp to test
this.

Does this make sense?  If the front-end server is sending the hostname,
shouldn't the connector use the hostname whether enableLookups is set or
not?

By mod_jk equivalent I mean that we have our own web server extension
that performs the AJP 1.3 protocol to Tomcat 5.5.20 running on Windows.
My tracing shows that the hostname is being sent in each case.

Mitchell Fisher | Unisys Corp.


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