Problem: When using XML::Parser in mod_perl, the server segmentation and/or bus faults.

ID: fault_01 / Apache/mod_perl: 1.3.33/1.29

Ranting about XML aside, there is a problem where the server will crash when running a mod_perl program which uses any of the XML::Parser family of perl modules. Rather any perl XML parser which uses expat as a back-end. It will generate one or both of these errors in the error log:

[Thu May 5 08:04:17 2005] [notice] child pid 7381 exit signal Bus Error (10)
[Thu May 5 08:07:57 2005] [notice] child pid 3898 exit signal Segmentation Fault (11)

Solution:

This is caused by Perl and Apache both trying to use libexpat. This causes a lot of problems since both mod_perl and Apache are both running in the same memory space. The solution is to not use expat in one of the two of them. You can either not use XML::Parser in a mod_perl environment or, as a likely more acceptable solution, you can build apache using the following configure option:

./configure --disable-rule=EXPAT [... other options]

This will build apache without expat. This does not appear to cripple apache in a noticable way. You should probably investigate this in detail before using it on a production system.

As a secondary option, you can use the XML::LibXML family of parsers in Perl.


Problem: Internet Explorer cannot connect to an Apache/SSL server even though Firefox can.

ID: compat_01 / Apache/mod_ssl: 1.3.33/2.8.22

The SSL engine log contains the following error:

[28/Mar/2005 20:11:52 23877] [info] Spurious SSL handshake interrupt[Hint: Usually just one of those OpenSSL confusions!?]

With an increased debugging level, the following messages may also be present:

[28/Mar/2005 20:11:52 23877] [debug] OpenSSL: read 0/5 bytes from BIO#100289760 [mem: 10070A6F0] (BIO dump follows)
+-------------------------------------------------------------------------+
+-------------------------------------------------------------------------+
[28/Mar/2005 20:11:52 23877] [trace] OpenSSL: Exit: failed in SSLv3 read client certificate A

Solution:

This problem is caused by a server certificate which is not in x509 format. During the install of a mod_ssl enabled Apache, it is suggested that the installer do a 'make certificate' during the install process to generate a self-signed certificate for testing purposes. This make directive produces a valid server certificate which is not in x509 format.

Firefox is able to understand this certificate and process it appropriately, so it shows the web page which is requested. Internet Explorer (up to and including IE6) is not smart enough to recognize the format and thus does not show the web page due to what it perceives as the lack of a server certificate. The solution is to generate a valid x509 certificate to maintain compatibility.

More information on how to generate an x509 server certificate can be found here: http://slacksite.com/apache/certificate.html



Copyright ©1997 - 2021, Bulent Yilmaz