[sf-perl] Weird IPC/Apache problem
Jonathan Swartz
swartz at pobox.com
Tue Jan 19 20:19:14 PST 2010
> On Tuesday, January 19, 2010, Jonathan Swartz <swartz at pobox.com>
> wrote:
>> Could it be because mod_perl 2 closes STDOUT? I just discovered
>> this and posted about it:
>>
>> http://marc.info/?l=apache-modperl&m=126296015910250&w=2
>>
>> I think it's a nasty bug, but no one seems to care about it thus
>> far. Post a follow up on the mod_perl list if your problem is
>> related.
>
> I remember seeing your post but I didn't fully understand your
> problem. Maybe the reason no one cares about it is that it isn't
> affecting them.
>
> IIRC, modperl ties stdout to $r, so that the output is delivered to
> the web client.
Yah, it's a complicated situation - it took me a few days to
understand it, and I had to learn things about file descriptors that I
had previously only vaguely understood. (My understanding is still
vague, just a little less so.)
It is unrelated mod_perl's tying stdout to $r.
I'll have to write up a better explanation. But suffice to say, under
mod_perl 2, if I do this:
my $dbh = DBI->connect( "DBI:mysql:$database", $user, $pass,
{ RaiseError => 1 } );
and then later do this:
system('echo "hello"');
then the next use of $dbh will fail. Give it a try! :)
Now you might say "well don't use system() from mod_perl", but
realistically code such as CPAN modules may do so without your
knowledge, so it qualifies in my book as a nasty programmer trap.
Jon
More information about the SanFrancisco-pm
mailing list