>Number: 4908 >Category: mod_jserv >Synopsis: Apache is adding bytes to large servlet responses, ( > 500 >bytes ) >Confidential: no >Severity: serious >Priority: medium >Responsible: jserv >State: open >Class: support >Submitter-Id: apache >Arrival-Date: Wed Aug 25 23:10:00 PDT 1999 >Last-Modified: >Originator: [EMAIL PROTECTED] >Organization: apache >Release: Apache 1.3.9 JServ 1.0Final >Environment: Linux Slackware kernel 2.2.10 Pentium III Java v 117a JSDK2.0 mod_ssl 2.4.0 >Description: After spending 3 full days on this problem, and looking through a lot of a documentation, I am hoping that you may be able to help. I cannot find the answer in the FAQ's, jserv documentation, deja news, .......
I have a servlet which acts as a proxy between a mainframe and a remote clients web browser. This servlet has been working fine on our current production system, which runs Apache.1.3.3, apache_ssl and jserv 0.9.11. I am trying to upgrade to the latest JServ release. The clients passes data to the servlet, which is processed by the mainframe and the response is then passed back to the client. The response stream can be up to 2K in size but is normally around 1024 bytes. Apache receives the correct data from JServ, and then attempts to return this data to the client. If the response data is broken over more than 1 TCP frame, then Apache seems to add the number of bytes at the start of each TCP frame ie. the following are response frames to the remote client 1st Frame ( from Apache to client ) HTTP/1.1 200 OK Date ...etc... 2nd Frame 19\n\rabcdefghijklmnopqrs\n\r 3rd Frame 7\n\rtuvwxyz\n\r where the real data are the characters, but Apache is adding the value 19, following by hex 0d , hex 0a, ie. 19 is the number of bytes of data in this frame same for the next frame of 7 bytes where the correct response should be as follows 1st Frame ( from Apache to client ) HTTP/1.1 200 OK Date ...etc... 2nd Frame abcdefghijklmnopqrs 3rd Frame tuvwxyz I normally have jserv and Apache running on the same machine, but to debug this problem, I have them running on separate machines. I have traced the message from JServ to Apache and it definetly contains the correct data (ie. abcdefg..) with no additional carriage return/newlines inserted. I am not concerned with the data being broken over several frames, but am trying to locate why Apache decides to add data length values at the start of each frame. ( It hasn't done this in the past ?? )It is screwing up the client side, which examines all the bytes as a stream of data. >How-To-Repeat: I can probably set a demo up for you, if need be. Just need a little time, to give access to a development machine. I can send you text files of my logs & trace files if that helps. >Fix: I guess I could get the clients browser to ignore a certain number of bytes, but the trouble is where should it start and finish?? ( as all bytes are allowed in the normal stream of data ) >Audit-Trail: >Unformatted: [In order for any reply to be added to the PR database, you need] [to include <[EMAIL PROTECTED]> in the Cc line and make sure the] [subject line starts with the report component and number, with ] [or without any 'Re:' prefixes (such as "general/1098:" or ] ["Re: general/1098:"). If the subject doesn't match this ] [pattern, your message will be misfiled and ignored. The ] ["apbugs" address is not added to the Cc line of messages from ] [the database automatically because of the potential for mail ] [loops. If you do not include this Cc, your reply may be ig- ] [nored unless you are responding to an explicit request from a ] [developer. Reply only with text; DO NOT SEND ATTACHMENTS! ]