Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the CGI CPAN distribution.

Report information
The Basics
Id: 11852
Status: resolved
Priority: 0/
Queue: CGI

People
Owner: MARKSTOS [...] cpan.org
Requestors: blackdown [...] virtualplanets.net
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Important Bug in mod_perl version detection
Original Code: # Turn on special checking for Doug MacEachern's modperl my $MOD_PERL = 0; if (exists $ENV{MOD_PERL}) { eval "require mod_perl"; if (defined $mod_perl::VERSION) { my $float = $mod_perl::VERSION; $float = ~ s/^.+?([\d.]+).+$/$1/; if ($float >= 1.99) { $MOD_PERL = 2; require Apache::RequestUtil; eval "require APR::Table"; # Changing APIs? I hope not. } else { $MOD_PERL = 1; require Apache; } } } Error: root@hosting [~]# /etc/init.d/httpd configtest Use of uninitialized value in substitution (s///) at /usr/lib/perl5/5.8.6/CGI/Cookie.pm line 29. [Sat Mar 12 14:46:37 2005] [error] Can't locate Apache/RequestUtil.pm in @INC (@INC contains: /usr/local/rt3/local/lib /usr/local/rt3/lib /usr/lib/perl5/5.8.6/i686-linux-thread-multi /usr/lib/perl5/5.8.6 /usr/lib/perl5/site_perl/5.8.6/i686-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl . /usr/local/apache/ /usr/local/apache/lib/perl) at /usr/lib/perl5/5.8.6/CGI/Cookie.pm line 32.\nCompilation failed in require at /usr/local/rt3/bin/webmux.pl line 103.\nBEGIN failed--compilation aborted at /usr/local/rt3/bin/webmux.pl line 103.\nCompilation failed in require at (eval 6) line 1.\n Syntax error on line 1169 of /usr/local/apache/conf/httpd.conf: Can't locate Apache/RequestUtil.pm in @INC (@INC contains: /usr/local/rt3/local/lib /usr/local/rt3/lib /usr/lib/perl5/5.8.6/i686-linux-thread-multi /usr/lib/perl5/5.8.6 /usr/lib/perl5/site_perl/5.8.6/i686-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl . /usr/local/apache/ /usr/local/apache/lib/perl) at /usr/lib/perl5/5.8.6/CGI/Cookie.pm line 32. Compilation failed in require at /usr/local/rt3/bin/webmux.pl line 103. BEGIN failed--compilation aborted at /usr/local/rt3/bin/webmux.pl line 103. Compilation failed in require at (eval 6) line 1. My Solution: Comment Line 29 /usr/lib/perl5/5.8.6/CGI/Cookie.pm my $float = $mod_perl::VERSION; # $float = ~ s/^.+?([\d.]+).+$/$1/; #comment by bug if ($float >= 1.99) { Hay put a test print under my $float = $mod_perl::VERSION; and get 1.29 Code: my $float = $mod_perl::VERSION; print $float; # Test: Check $float Output: 1.29 This bug is reproduce in Perl 5.8.6 and older with CGI::Cookie v1.24 and CGI v3.0.6
The OS is: Fedora Core 1 with legacy yum and cPanel installed. Kernel: Linux XXXX 2.4.22-1.2199.4.legacy.nptlsmp #1 SMP Sun Feb 20 18:07:59 EST 2005 i686 i686 i386 GNU/Linux Perl 5.8.1 installed by cPanel Installation Perl 5.8.6 installed by me with Cpan
This change is really weird and breaks mod_perl version detection. - if ($mod_perl::VERSION >= 1.99) { + my $float = $mod_perl::VERSION; + $float = ~ s/^.+?([\d.]+).+$/$1/; + if ($float >= 1.99) {
Ok, this is correct for my server
From: PURDY [...] cpan.org
I was having a problem on my mp2/apache2 server: [Wed Sep 06 15:59:23 2006] [error] [client 24.106.186.250] Error executing run mode 'personal_info': Can't locate Apache/RequestUtil.pm in @INC (@INC contains: /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 ... ) at /usr/share/perl/5.8/CGI/Cookie.pm line 30.\nCompilation failed in require at (eval 106) line 6.\n at -e line 0\n, referer: http://www.example.com/app And I believe somehow related, but also, instead of this: Show quoted text
> require Apache::RequestUtil;
It should be this: Show quoted text
> require Apache2::RequestUtil;
Looks like the mod_perl detection is completely different in 3.43. I'm marking this as resolved for now, Please re-open if you still see an issue. Mark