|Summary:||Need to increase the maximum buffer size for HTTP header from 16k to 64k.|
|Product:||Tomcat Connectors||Reporter:||Calin Gruita <calin.gruita>|
|Component:||Common||Assignee:||Tomcat Developers Mailing List <dev>|
|OS:||Windows Server 2003|
Description Calin Gruita 2007-03-30 15:57:32 UTC
Currently the maximum buffer size for HTTP headers in the native JK connector is 16k. However, this size is not sufficient in case the HTTP header is larger than 16k (i.e. large Kerberos Tickets). If such a case arises an error of the type “[error] jk_isapi_plugin.c (1135): failed to init service for request” gets raised. For this reason the maximum buffer size, which currently is hard- coded to 16k, must be increased to 64k.
Comment 1 Calin Gruita 2007-03-30 16:05:26 UTC
The code change required to fix this bug is to modify line# 1498 in the jk_isapi_plugin.c file to look like this: char huge_buf[64 * 1024]; /* should be enough for all */
Comment 2 Christopher A Johnson 2007-10-31 08:23:58 UTC
The buffer size can be increased by modifying the source code associated with the iis dll and the AJP protocol. I was only successful in producing a working dll by using Visual Studio 6 sp5 with the associated x86 makefile. The iis dll code base requires the following changes are made: native\iis\jk_isapi_plugin.c(1977): char huge_buf[64 * 1024]; native\common\jk_ajp12_worker.c(38): #define READ_BUF_SIZE (64*1024) native\common\jk_ajp13.h(39): #define AJP13_READ_BUF_SIZE (64*1024) native\common\jk_ajp14.h(41): #define AJP14_READ_BUF_SIZE (64*1024) native\common\jk_msg_buff.h(34): #define DEF_BUFFER_SZ (64 * 1024) native\common\jk_sockbuf.h(26): #define SOCKBUF_SIZE (64*1024) native\common\jk_status.c(39): #define HUGE_BUFFER_SIZE (64*1024) native\common\jk_util.c(115): #define HUGE_BUFFER_SIZE (64*1024) In addition the following change will need to be made to one of the AJP protocol classes: \jk\java\org\apache\coyote\Constants.java(95): public static final int MAX_PACKET_SIZE = 65536;
Comment 3 Rainer Jung 2007-11-02 19:17:50 UTC
Please try combining native\iis\jk_isapi_plugin.c(1977): char huge_buf[64 * 1024]; with the attribute max_packet_size first. See the description on the docs page http://tomcat.apache.org/connectors-doc/reference/workers.html especially for the related config parameter on the Tomcat side. Please report your findings back. Thanks! Rainer
Comment 4 Rainer Jung 2007-12-18 06:29:50 UTC
This should have been fixed by Mladens commit r594798 on 2007-11-14: Fix Bz 42003 by dynamically allocating memory.
Comment 5 Rainer Jung 2008-01-01 16:32:30 UTC
Move a couple of fixed JK issues from resolved to closed.