Fix (APAR): WAS_Plugin_04-12-2004_5.0.X_cumulative_Fix Status: Fix Release: 5.0.2.3,5.0.2.2,5.0.2.1,5.0.2,5.0.1,5.0.0 Operating System: All Supersedes Fixes: Websphere Service Pack 5.0.2.5 plug-in Cumulative plug-in fix WAS_Plugin_02-03-2003_5.0.X_cumulative_Fix Cumulative plug-in fix WAS_Plugin_11-19-2003_5.0.X_cumulative_Fix Cumulative plug-in fix WAS_Plugin_09-03-2003_5.0.X_cumulative_Fix PQ82742 - RefreshInterval property in plugin-cfg.xml cannot be disabled PQ84485 - Client did not receive the message body of 302 response PQ84539 - Plug-in memory leak upon IHS restart PQ84704 - 500 response was received when ExtendedHandshake was set to True PQ84704.1 - Needs to check socket status after extended handshake PQ84887 - Plug-in did not do failover correctly PQ84932 - Plug-in used lots of memory for ESI buffering PQ84950 - iPlanet (Sun ONE) Web server crashed upon graceful shutdown PQ86174 - error in gsk_secure_soc_close: GSK_INVALID_STATE (gsk rc = 5) PQ86442 - Not fail on customer cookies in non-standard format PQ86467 - iPlanet plug-in failed to parse and set headers PQ86603 - Plug-in had conflict with IHS 2.0.x MOD_ALIAS and MOD_REWRITE modules CMVC Defect: WAS_Plugin_04-12-2004_5.0.X_cumulative_Fix Byte size of APAR: 5363132 Date: 2004-04-13 Abstract: This is a cumulative plugin fix for the WebSphere Application Server 5.0.0, 5.0.1, and 5.0.2 as of April 12, 2004 Description/symptom of problem: This is a cumulative plugin fix for the WebSphere Application Server 5.0.0, 5.0.1, and 5.0.2 as of April 12, 2004 Directions to apply fix: NOTE: YOU MUST FIRST DOWNLOAD THE UPDATE INSTALLER TOOL IN ORDER TO INSTALL A FIX. The Fix Installer can be downloaded from the following link: http://www-3.ibm.com/software/webservers/appserv/support/index.html 1) Create temporary "fix" directory to store the jar file: UNIX: /tmp/WebSphere/fix Windows: c:\temp\WebSphere\fix 2) Copy jar file to the directory 3) Stop Web server **AIX ONLY: run the command slibclean after stopping the webserver to clean up any shared libraries in use 4) Follow the Fix installation instructions that are packaged with the Fix Installer on how to install the Fix. 5) Restart Web server 6) The temp directory may be removed. Directions to remove fix: NOTE: FIXES MUST BE REMOVED IN THE ORDER THEY WERE APPLIED. DO NOT REMOVE A FIX UNLESS ALL FIXES APPLIED AFTER IT HAVE FIRST BEEN REMOVED. YOU MAY REAPPLY ANY REMOVED FIX. Example: If your system has fix1, fix2, and fix3 applied in that order and fix2 is to be removed, fix3 must be removed first, fix2 removed, and fix3 re-applied. 1) Stop Web server **AIX ONLY: run the command slibclean after stopping the webserver to clean up any shared libraries in use 2) Follow the instructions that are packaged with the Fix Installer on how to uninstall the Fix. 3) Restart Web server Directions to re-apply fix: 1) Shutdown Web server **AIX ONLY: run the command slibclean after stopping the webserver to clean up any shared libraries in use 2) Follow the Fix instructions that are packaged with the Fix Installer on how to uninstall and reinstall the Fix. 3) Restart Web server Additional Information: Name PQ82742 Abstract RefreshInterval property in plugin-cfg.xml cannot be disabled The plug-in now allows the user to disable RefreshInterval in the plugin-cfg.xml file. If RefreshInterval is set to -1 in the plugin-cfg.xml file, the plug-in will NOT reload the plugin-cfg.xml file. The user would have to restart the webserver in order for any changes in the plugin-cfg.xml to be picked up. Name PQ84485 Abstract Client did not receive the message body of 302 response Name PQ84539 Abstract Plug-in memory leak upon IHS restart Plug-in now registers a cleanup function with IHS process, so that the memory used for plug-in configuration and GSKIT library can be released when IHS httpd process restarts. Name PQ84704 Abstract 500 response was received When ExtendedHandshake was set to True Plug-ins are the preferred method of communication between the Web server and the application server. However, when a proxy server is used between plug-in and appserver, plug-in cannot make direct connection to the appserver. Therefore, plug-in cannot always do failover correctly because it has no knowledge on the proxy server and cannot tell the correct appserver status. To provide a workaround, after connection is established, extended handshake is performed by sending bogus request to appserver and verifying response. Plug-in will mark the appserver down and fail over to another appserver if it receives unexpected response. Name PQ84704.1 Abstract Needs to check socket status after extended handshake This is related to PQ84704. When proxy server is used between plug-in and appserver, no direct connection is made between plug-in and the appserver, and persistent connection is not always used between plug-in and the proxy server. Plug-in has to check and verify the connection used for extended handshake request is still good for real client request. If the connection has been closed by remote peer, plug-in establish a new connection. **NOTE** With a proxy server used between plug-in and appserver, and ExtendedHandshake is set to "True", it's expected that it takes longer for plug-in to process a incoming request. Name PQ84887 Abstract Plug-in did not do failover correctly Persistent connections are used between plug-in and appserver. When a newly-established connection is closed by appserver in the middle of a request, plug-in will mark the server down and fail over to another appserver. Name PQ84932 Abstract Plug-in used lots of memory for ESI buffering Intermittent high memory usage was seen when ESI processor was enabled, in which case the response was buffered before it got cached. The buffer space was released when the request ended. However, when the response was large, or when there were many concurrent requests being handled by ESI processor, this would result in tremendous memory usage, and sometimes could make the system crash. To avoid such problem, plug-in now checks for the response size if there is a Content-Length response header. If the response body is larger than the available ESI caching space, the response will pass through without being handled by ESI. Name PQ84950 Abstract iPlanet (Sun ONE) Web server crashed upon graceful shutdown When iPlanet (Sun ONE) Web server 6.0 was stopped, the server process crashed, and the following messages were written to the error log: catastrophe ( 553): Server crash detected (signal SIGSEGV) info ( 553): Crash occurred in function __0oSostream_withassigndtv from module /usr/lib/libC.so.5 catastrophe ( 552): Server crash detected (signal SIGSEGV) info ( 552): Crash occurred in function __0oSostream_withassigndtv from module /usr/lib/libC.so.5 This was caused by unnecessary linking. Name PQ86174 Abstract error in gsk_secure_soc_close: GSK_INVALID_STATE (gsk rc = 5) This message was seen when new plug-in configuration was reloaded and old configuration was released. It did not have any adverse effect to the webserver and plug-in functionality. Code change was made to ensure right sequence is followed. Name PQ86442 Abstract Not fail on customer cookies in non-standard format Plug-in is improved to adopt more flexibility in cookie value parsing. Occasionally, there are third-party programs that do not follow the standard format to set the Cookie header. When plug-in parses such Cookie header for JSESSIONID, it ignores other cookies by continuing looking until JSESSIONID cookie is found. For example, plug-in now does not fail to get the JSESSIONID cookie from following header: Cookie: key1;key2=value2;key3=;JSESSIONID=abc (some cookies are not in "name=value" pair) Cookie: key1=value1,key2=value2;JSESSIONID=abc (Use different separator other than ";") Name PQ86467 Abstract iPlanet plug-in failed to parse and set headers iPlanet plug-in did not correctly process multiple escaped characters in request header. When plug-in gets the request headers from the iPlanet webserver, some characters, such as '"' and '\', are escaped as '\"' and '\\'. Plug-in should send the header without escaping backslash. Name PQ86603 Abstract Plug-in had conflict with IHS 2.0.x MOD_ALIAS and MOD_REWRITE modules The IHS 2.0.x MOD_REWRITE and MOD_ALIAS modules could be skipped after PQ82880, and the requests would not get re-written correctly before getting routed by WebSphere plug-in to appserver. Plug-in now allows such modules to run before it processes the request.