-
1. Re: AJP Flush Packet causing text/plain output
reisler Sep 25, 2007 6:09 AM (in response to reisler)An update:
I neglected to note that I think the reason this flush buffer upsets Apache is that Apache is forced to flush a response without any of the header information from Tomcat. So it uses the default type, and chunked encoding (because it doesn't know the length), and can't send any of the other headers.
In despeartion, I created a patch to mod_jk 1.2.25 that seems to solve the symptom:
diff jk_ajp_common.c jk_ajp_common.orig
1742,1751d1741
< // Removing extra flush buffer if we do not need it.
< if (headeratclient == JK_FALSE) {
< int code = (int)jk_b_pget_byte(op->reply,0);
< unsigned int len = (unsigned int)jk_b_pget_int(op->reply,1);
< if ((code == JK_AJP13_SEND_BODY_CHUNK) && (len == 0)) {
< jk_log(l, JK_LOG_DEBUG, "Received flushbuffer -- ignoring");
< continue;
< }
< }
<
This might be a good check to have in mod_jk regardless, but there is still the issue as to whether Tomcat should be sending this at all. -
2. Re: AJP Flush Packet causing text/plain output
da502548 Oct 5, 2007 10:38 AM (in response to reisler)We have encurred in the same problem you have described
Our environment is composed by two JBoss 4.2.1 GA instances and one Apache web server version 2.0.59 connected by mod_jk version 1.2.23, all running on Linux machines.
We found this problem for the first time moving from the previous JBoss version, the 4.0.5 GA to the 4.2.1 GA.
The problem is that the browser randomly doesn't receive all the http headers, especially cookies and content type are dropped.
We have found this problem initially by using Firefox , because IE doesn't care too much of the wrong content type (text/plain instead of text/html, text/javascript, ...).
We've used the tool org.apache.soap.util.net.TcpTunnelGui to inspect the http traffic between the browser and the web server and we saw that some headers were dropped.
We've analyzed so the network traffic between the web server and the jboss servers and it seems that the content type header is correctly sent by jboss.
Reading on http://www.mail-archive.com/users@tomcat.apache.org/msg35199.html your starting thread we discovered that this problem has been recognized in the mod_jk component of the apache tomcat.
Especially we found this link http://issues.apache.org/bugzilla/show_bug.cgi?id=43478 were there you can find a patch for this problem in file connectors/jk/java/org/apache/jk/core/MsgContext.java
We know that jboss integrates a derived work of tomcat for the serlvet/jsp component, but I was unable to find this class in the sources of JBoss.
We would like to port this fix also in the JBoss Application Server, but we was unable to find the whole org/apache/jk package.
Does anyone tried to do this?
Any suggestion is appreciated.