Adam Griffiths wrote:
In terms of mod_perl is it an error to have Perl compiled with LFS but not
Apache, or the other way around? In otherwords should LFS for the two
programs always mach? Or should mod_perl aplications be able to handle a
mismatch in LFS between Apache and Perl?

I guess I've failed to explain that in my original reply. I'll try again.


The answer is: it depends

In the tables below + indicated has LSF support, - indicates the lack of.

1) Using pure Perl APIs

If your mod_perl code does:

print $log "foo";

which crosses 2GB limits

      | Apache+ Apache-
------+----------------
Perl+ |  V        V
Perl- |  X        X

Notice that Apache is not involved here at all.

2) Using pure Apache APIs

If your mod_perl code does:

$r->log_error("foo");

which cross 2GB limit.

      | Apache+ Apache-
------+----------------
Perl+ |  V        X
Perl- |  V        X

Notice that here Perl doesn't affect Apache API log_error() it merely passes a string to that C API.

3) Using mixed APIs

I can't think at the moment of a good mp1 example since I haven't done that for a while, but I'll use an example from APR::PerlIO (mp2) where the APIs mix.

If you open a file and seek on its $fh like so:

  open my $fh, "<:APR", $filename or die $";
  seek $fh, 10, 0;

If the file is < 2GB:

      | Apache+ Apache-
------+----------------
Perl+ |  V        X
Perl- |  X        V

here it will work only if either both have or both don't have LFS, because the sizes of the types must match. If they don't match, seek will die (because check that condition).

If the file is >= 2GB:

      | Apache+ Apache-
------+----------------
Perl+ |  V        X
Perl- |  X        X

it'll work only if both support LFS.

This 3rd case is the most complicated because if there is a mismatch between Perl and Apache, and the code where the two has to co-operate is not checking for that mismatch you may get random failures, just like we had with the seek in APR::PerlIO which now will die if a non-zero POSITION is used when the two don't agree.

Hope that this makes things clear. And if it doesn't please ask more specific questions regarding specific APIs.

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


-- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html



Reply via email to