[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MP2] Seg Fault in Registry script "print" using output filter handler


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, suppressed <suppressed> 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



Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.