The workarounds (viable to me) that prevent the seg fault descirbed below
are:

1. Use LWP::UserAgent within a startup.pl (need to actually make a complete
HTTP request, not just 'use')
2. Use WWW:Curl instead of LWP::UserAgent in the output filter

One of the keys to the seg fault seems to be the use of LWP::UserAgent
within a bucket brigade filter. The seg fault occurs if Perl hasn't yet
loaded this module (and friends). After the filter runs successfully - seg
fault. Interestingly though, the other factors described are all necessary:
CGI.pm header(), the print statement must have a comma and contain >8k -
which causes the output filter to run during the "print", not after.

Can anyone offer a potential cause for the seg fault? The example code
provided is all straight out of the docs.

Other things to note:
   - This occurs on a pre-forking mpm running in single process mode -X
   - The LWP request is not hitting the same server

Thanks,
Ed Eddington


On 11/15/06, [EMAIL PROTECTED] <
[EMAIL PROTECTED]> wrote:


I'm getting seg faults within "print" of ModPerl::Registry script while
using an output filter handler. The output filter is run during the script's
"print" statement when the printed string is > ~8kb. Debugging shows the seg
fault occurs AFTER the output filter handler has completed successfully, but
BEFORE the print statement completes. GDB backtrace is below. Perl modules
CGI.pm and LWP::UserAgent seem to be causal in generating the seg fault.

Here is the somewhat complicated recipe that produces the seg fault
reliably.

1. ModPerl::Registry script using CGI.pm header() and a print statement
that includes a comma separated (list) of strings > 8kb.

2. An output filter handler that uses LWP::UserAgent to make an HTTP
request.

Caveats:
    - Only occurs in an Apache child that hasn't already loaded these
modules (CGI, LWP::UserAgent) and dependents.
    - Occurs in single process mode (-X) on both static and dynamically
linked builds.

Example script/filter and system details are below. I can provide more
info if needed. I'm currently testing other module versions. Can anyone
suggest a fix or workaround?

Thanks!
*Ed Eddington*
Sr. Software Engr - Web Development
Priority Health - Grand Rapids, MI

Reply via email to