PQ88298: WASPLUGIN (IHS390WAS50PLUGIN_HTTP ) SSL HTTPS 302 REDIRECT - CONTENT-LENGTH OF NON ZERO (CONTENT LENGTH NON 0)

 A fix is available

Obtain the fix for this APAR



APAR status
Closed as program error.

Error description
When using WASPlugin (ihs390WAS50Plugin_http) version W502xxx
and with SSL PORT (HTTPS), if the application sent a
CONTENT-LENGTH greater than zero (0), then the connection
will drop at the browser, In the -vv trace and wasplugin trace
you will receive a successfully return code (HTTP 200) but the
connection will drop.
..
In the --v trace you would fine the following:
 HTTPD_set() args..... name size=13; name=HTTP_RESPONSE
 HTTPD_set() args..... value size=4; value=302
 HTTPD_set()... successful
 HTTPD_set() args..... name size=11; name=HTTP_REASON
 HTTPD_set() args..... value size=5; value=Found
 HTTPD_set()... successful
 HTTPD_set() args..... name size=11; name=HTTP_Server
 HTTPD_set() args..... value size=32; value=WebSphere
    Application
    ...
    ...
HTTPD_set()...  Didn't match existing response headers. Adding
   Server to
HTTP/1.1 302 Found
Server: IBM HTTP Server/V5R3M0
Date: Thu, 26 Feb 2004 06:27:31 GMT
Location: Logon_data.jsp?ct=2004022608273181CxxDC18
Connection: close
Accept-Ranges: bytes
Content-Type: text/html
Content-Length: 308
Last-Modified: Thu, 26 Feb 2004 06:27:31 GMT
   ...
   ...
 443 POST        308 302 1077776739.953326 1077776847.608636
..
For a successfully run you need a CONTENT-LENGTH of 0, as in
..
hs390WAS50HttpPlugin: rSet exit: rc = 0
ihs390WAS50HttpPlugin: cb_write_headers:
    header at position 4 is Content-Length : 0
ihs390WAS50HttpPlugin: rSet entry: name = HTTP_CONTENT_LENGTH
   name length = 19 value = 0 value length = 1
ihs390WAS50HttpPlugin: rSet exit: rc = 0
ihs390WAS50HttpPlugin: cb_write_headers:
   add content-encoding:binary header
ihs390WAS50HttpPlugin: rSet entry: name = HTTP_CONTENT_ENCODING
    name length = 21 value = binary value length = 6
ihs390WAS50HttpPlugin: rSet exit: rc = 0
ihs390WAS50HttpPlugin: cb_write_headers: exit
ib_htresponse: htresponseReadBody: No response body to read
ws_esi: readResponseBody, len_p=0
ESI: esiResponsePassThru: success
ESI: esiRequestUrlStackDestroy
ESI: esiRequestPopUrl: '/admin/logoff.do'
ESI: esiUrlDestroy: '/admin/logoff.do'
ESI: esiResponseRelease
ESI: esiResponseDecr: 1
ESI: esiResponseDestroy
ESI: esiHandleRequest: success
ws_common: websphereHandleRequest: Done:
    host='9.57.4.148'; uri='/admin/logoff.do'
ws_common: websphereEndRequest: Ending the request
ws_transport: transportStreamEnqueue:
    Adding existing stream to the queue
ihs390WAS50HttpPlugin: service_exit: websphereHandleRequest
    (/admin/logoff.do) returned with rc = 0
ihs390WAS50HttpPlugin: service_exit: return -- return_code = 302
..
Note: If the application use the Transport Handle or non-ssl
PORT,
RFC: for 302
10.3.3 302 Found
The requested resource resides temporarily under a different
URI. Since the redirection might be altered on occasion, the
client SHOULD continue to use the Request-URI for future
requests.
This response is only cacheable if indicated by a Cache-Control
or Expires header field.
..
The temporary URI SHOULD be given by the Location field in the
response. Unless the request method was HEAD, the entity of the
response SHOULD contain a short hypertext note with a hyperlink
to the new URI(s).
..
If the 302 status code is received in response to a request
other
than GET or HEAD, the user agent MUST NOT automatically redirect
the request unless it can be confirmed by the user, since this
might change the conditions under which the request was issued.
Local fix Problem summary
****************************************************************
* USERS AFFECTED: All users of WebSphere Application Server    *
*                 V5.0 for z/OS                                *
****************************************************************
* PROBLEM DESCRIPTION: Unexpected results, and message         *
*                      "Failed to read from an old stream"     *
*                      in the plugin trace.                    *
****************************************************************
* RECOMMENDATION:                                              *
****************************************************************
The application writes content body with a 302 HTTP response,
and the next request on the socket gets an unexpected result.
Problem conclusion
If an application writes content body with certain HTTP
response codes, the plugin does not read the body from the
socket, and the next request reads the content as its response,
causing unexpected results. The code is changed to flush the
data for HTTP response codes 204 and 304, and to allow code 302
to return content body in accordance with RFC2616.

APAR PQ88298 is associated with SERVICE LEVEL W502011 of
WebSphere Application Server V5.0 for z/OS.
Temporary fix Comments
APAR information
APAR number PQ88298
Reported component name WEBSPHERE FOR Z
Reported component ID 5655I3500
Reported release 500
Status CLOSED PER
PE NoPE
HIPER NoHIPER
Special Attention NoSpecatt
Submitted date 2004-05-03
Closed date 2004-06-16
Last modified date 2004-07-02

APAR is sysrouted FROM one or more of the following:

APAR is sysrouted TO one or more of the following:

Modules/Macros
BBOUBINF          

Publications Referenced

Fix information
Fixed component name WEBSPHERE FOR Z
Fixed component ID 5655I3500

Applicable component levels
R500 PSY UQ89659    UP04/06/22 P F406

  Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.


Document Information


Current web document: swg1PQ88298.html
Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server for z/OS
Operating system(s):
Software version: 500
Software edition:
Reference #: PQ88298
IBM Group: Software Group
Modified date: Jul 2, 2004