If you have not previously setup dump tools to save information about program crashes then refer to 'MustGather setup of error reporting dump tools for Microsoft Windows' for information on performing this setup. This setup step must be performed prior to recreating the crash. Make sure you are aware of the directory into which the tools will save log and dump data.
Remove any existing log and crash dump files from the output directory (after backing up as appropriate).
NOTE: You must review the 'Known Windows crashes' section at the bottom of this document before proceeding to make sure your problem can't be solved with one of the solutions documented there.
These steps must be performed after the crash occurs.
This information is gathered by running the ihsdiag ServerDoc DescribeConfig
tool as described by
the instructions in the System and web server information tool documentation.
This will result in a directory of information named 'ServerConfig.timestamp
'.
That directory should be zipped and sent to IBM using the provided instructions after completing the
following steps for obtaining additional information.
Copy the data (logs and/or crash dump files) saved by the Windows error reporting tool (ex: Dr.Watson), if it exists,
into the 'ServerConfig.timestamp
' directory.
These files should be located in the crash dump output directory(s) that were configured in the
System preparation section above.
For earlier Microsoft Windows versions that use Dr.Watson, the data files will usually be named drwtsn32.log
and user.dmp
.
For newer Microsoft Windows versions that use the LocalDumps setup, the data files will usually be named liked
'http.exe.4359.dmp
'.
The access.log
and error.log
files will be automatically gathered by
the ServerDoc DescribeConfig
tool used above, but if the configuration file has been
changed to specify different names for these log files then you should copy those log files from
the IHS_install_root\logs\
directory to the
'ServerConfig.timestamp\files\logs
' directory.
The actual location is specified in plugin-cfg.xml
and
is generated by configuring LogLevel="Trace"
.
Example:
c:\WebSphere\AppServer\logs\http_plugin.log
'Application'
and 'System'
event logs.
'Windows Logs'
in the left pane of the
Event Viewer.):
'Save Log File As...'
or 'Save All Events As...'
'Application'
or 'System'
),
and select a type of
'Event Log (*.evt)'
or 'Event Files (*.evtx)'
ServerConfig.timestamp
' directory
Create a zip file of the 'ServerConfig.timestamp
' directory
as described in the System and web server information tool documentation.
Send this ServerConfig.timestamp.zip
containing the following to IBM support for analysis:
'ServerDoc DescribeConfig'
,
system_info.txt
by the 'System Information' program
In order to identify a known crash from drwtsn32.log, first open the log file in a text editor, e.g. notepad.exe. Move to the bottom of the file, then select Edit/Find, check Match-case, select Direction-Up, and enter the Find-what text "FAULT" (do not include the quotes).
Known crashes can be identified by looking for the text indicated below. It will be either close to the FAULT pointer or in the Function Name of the Stack Back Trace just below the FAULT pointer.
Search text | Problem Resolution |
---|---|
ap_die | IHS 2.0.42.2: Fixed in APAR PQ85834
IHS 2.0.47: Fixed in IHS 2.0.47.1 |
gsk_attribute_get_data | Fixed in mod_ibm_ssl (not GSKit) at current recommended service levels
In theory could happen on other platforms but so far the crash has only been seen on Windows |
gsk_attribute_get_cert_info | FPK59158, fixed in Plugin 6.1.0.17 and later |
mod_ibm_ssl!updateLibpath | PK91197 (IHS 6.0 and 6.1 only) |
If there is a copy of the IBM LDAP Client or Server library already installed on the same machine as IHS it may have configured the TISDIR variable in the Windows environment. This conflicts with the IHS LDAPCodepageDir directive and may cause IHS to crash without any error or Windows event being logged. If if it is an older version which is no longer required, it is recommended that the IBM LDAP libraries be uninstalled in order to delete the TISDIR environment variable. If that is not possible then the LDAPCodePageDir directive must be removed and the default IHS LDAP codepage directory used.
Certain third party software may add a Winsock Service Provider layer which sits between IHS and the TCP/IP network. If this software does not implement some of the Microsoft advanced Winsock functions correctly, such as AcceptEx, it may cause IHS to crash on startup or restart. A possible fix is to add the "Win32DisableAcceptEx" directive to the IHS configuration file. Setting "MaxRequestsPerChild 0" (the recommended default) may also eliminate the crashes. This crash may be accompanied by the following message in the error log:
[warn] (OS 10038)An operation was attempted on something that is not a socket. : setsockopt(SO_UPDATE_ACCEPT_CONTEXT) failed.
On Windows, IBM HTTP Server has a Parent process and a single multi-threaded Child process.
The number of threads in the child process can be tuned according to the expected number of simultaneous connections
using the ThreadsPerChild
directive.
However, attempting to set the number of threads too high can cause excessive memory usage resulting in child process crashes.
When approaching the limits, the server may actually
run for awhile before the memory limit is exceeded and causes the child process to crash. Values even
higher than this would probably cause an immediate crash during startup.
Refer to the Handling enough simultaneous connections with IBM HTTP Server on Windows / ThreadsPerChild setting topic in the 'IBM HTTP Server Performance Tuning' document for information on tuning this value.
The '-4' return code in the message "unable to init Zlib: deflateInit2 returned -4"
is Z_MEM_ERROR and means
there was insufficient memory to initialize Zlib.
In this case, some tuning to decrease memory usage is probably needed.
For information on tuning to decrease memory usage, you should refer to the prior Excessive ThreadsPerChild values may cause IHS child process crashes entry in this document, and to the memory references in the IBM HTTP Server Performance Tuning guide, and to the Many RewriteCond/RewriteRule directives topic.