[Fri Jun 11 13:41:22 2010] [error] Can't locate object method "new" via package "Foswiki::Engine::Apache2::MP20" at (eval 30) line 1.\n at (eval 30) line 1\n\teval 'use Foswiki::Engine::Apache2::MP20; Foswiki::Engine::Apache2::MP20->new\n;' called at /usr/local/src/git.foswiki.org/trunk/core/lib/Foswiki.pm line 544\n\tFoswiki::BEGIN() called at (eval 30) line 0\n\teval {...} called at (eval 30) line 0\n\trequire Foswiki.pm called at /usr/local/src/git.foswiki.org/trunk/core/lib/Foswiki/Engine/Apache.pm line 75\n\tFoswiki::Engine::Apache::BEGIN() called at (eval 30) line 0\n\teval {...} called at (eval 30) line 0\n\trequire Foswiki/Engine/Apache.pm called at /usr/local/src/git.foswiki.org/trunk/core/tools/mod_perl_startup.pl line 41\n\tmain::BEGIN() called at (eval 30) line 0\n\teval {...} called at (eval 30) line 0\n\trequire /usr/local/src/git.foswiki.org/trunk/core/tools/mod_perl_startup.pl called at (eval 2) line 1\n\teval 'require qCompilation failed in require at /usr/local/src/git.foswiki.org/trunk/core/lib/Foswiki/Engine/Apache.pm line 75.\n at /usr/local/src/git.foswiki.org/trunk/core/lib/Foswiki/Engine/Apache.pm line 75\n\tFoswiki::Engine::Apache::BEGIN() called at /usr/local/src/git.foswiki.org/trunk/core/lib/Foswiki.pm line 75\n\teval {...} called at /usr/local/src/git.foswiki.org/trunk/core/lib/Foswiki.pm line 75\n\trequire Foswiki/Engine/Apache.pm called at /usr/local/src/git.foswiki.org/trunk/core/tools/mod_perl_startup.pl line 41\n\tmain::BEGIN() called at /usr/local/src/git.foswiki.org/trunk/core/lib/Foswiki.pm line 75\n\teval {...} called at /usr/local/src/git.foswiki.org/trunk/core/lib/Foswiki.pm line 75\n\trequire /usr/local/src/git.foswiki.org/trunk/core/tools/mod_perl_startup.pl called at (eval 2) line 1\n\teval 'require qCompilation failed in require at /usr/local/src/git.foswiki.org/trunk/core/tools/mod_perl_startup.pl line 41.\n at /usr/local/src/git.foswiki.org/trunk/core/tools/mod_perl_startup.pl line 41\n\tmain::BEGIN() called at /usr/local/src/git.foswiki.org/trunk/core/lib/Foswiki/Engine/Apache.pm line 41\n\teval {...} called at /usr/local/src/git.foswiki.org/trunk/core/lib/Foswiki/Engine/Apache.pm line 41\n\trequire /usr/local/src/git.foswiki.org/trunk/core/tools/mod_perl_startup.pl called at (eval 2) line 1\n\teval 'require qCompilation failed in require at (eval 2) line 1.\n at (eval 2) line 1\n\teval 'require q [Fri Jun 11 13:41:22 2010] [error] Can't load Perl file: /usr/local/src/git.foswiki.org/trunk/core/tools/mod_perl_startup.pl for server peperomia-bp:0, exiting...Adding this method to Foswiki::Engine::Apache::MP20 seems to make everything happy:
sub new { my $proto = shift; my $class = ref($proto) || $proto; my $this = {}; return bless $this, $class; }Which is a bit odd, given that this ISA
Foswiki::Engine::Apache2
which itself ISA Foswiki::Engine::Apache
which ISA Foswiki::Engine
that implements new()
...
Server env:
DOCUMENT_ROOT | /usr/local/src/svn.foswiki.org/trunk/core | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GATEWAY_INTERFACE | CGI/1.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTP_ACCEPT | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTP_ACCEPT_CHARSET | ISO-8859-1,utf-8;q=0.7,*;q=0.7 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTP_ACCEPT_ENCODING | gzip,deflate | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTP_ACCEPT_LANGUAGE | en-us,en;q=0.5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTP_CONNECTION | keep-alive | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTP_COOKIE | FOSWIKIPREF= | TwistyPlugin _topicform= | TwistyPlugin _twistyIdSystemTrinSkin1= | TwistyPlugin _twistyIdSandboxWebHome1= | TwistyPlugin _twistyIdHubRISWebHome1=; FOSWIKISTRIKEONE=949cb33e7806c47f71ce4f5287a3990a; FOSWIKISID=1679414cd53d8792994c981e050eae54 Cookie string decoded for readability. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTP_HOST | peperomia-bp | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTP_KEEP_ALIVE | 300 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTP_REFERER | http://peperomia-bp/foswikigit-trunk/bin/configure | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTP_USER_AGENT | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100501 Iceweasel/3.5.9 (like Firefox/3.5.9) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PATH | /usr/local/bin:/usr/bin:/bin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
QUERY_STRING | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REMOTE_ADDR | 127.0.1.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REMOTE_PORT | 33026 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REQUEST_METHOD | GET | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
REQUEST_URI | /foswikigit-trunk/bin/configure | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SCRIPT_FILENAME | /usr/local/src/git.foswiki.org/trunk/core/bin/configure | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SCRIPT_NAME | /foswikigit-trunk/bin/configure | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SCRIPT_URI | http://peperomia-bp/foswikigit-trunk/bin/configure | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SCRIPT_URL | /foswikigit-trunk/bin/configure | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SERVER_ADDR | 127.0.1.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SERVER_ADMIN | webmaster@peperomia-bp | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SERVER_NAME | peperomia-bp | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SERVER_PORT | 80 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SERVER_PROTOCOL | HTTP/1.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SERVER_SIGNATURE | Apache/2.2.15 (Debian) Server at peperomia-bp Port 80 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SERVER_SOFTWARE | Apache/2.2.15 (Debian) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Operating system | Linux 2.6.32-3-amd64 (x86_64-linux-gnu-thread-multi) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Perl version | 5.010001 (linux) Note that by convention "Perl version 5.008" is referred to as "Perl version 5.8" and "Perl 5.008004" as "Perl 5.8.4" (i.e. ignore the leading zeros after the .) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@INC library path | /usr/local/src/git.foswiki.org/trunk/core/lib /usr/local/src/git.foswiki.org/trunk/core/lib . /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/local/src/git.foswiki.org/trunk/core/lib/CPAN/lib//arch /usr/local/src/git.foswiki.org/trunk/core/lib/CPAN/lib//5.10.1/x86_64-linux-gnu-thread-multi /usr/local/src/git.foswiki.org/trunk/core/lib/CPAN/lib//5.10.1 /usr/local/src/git.foswiki.org/trunk/core/lib/CPAN/lib/ /usr/local/src/git.foswiki.org/trunk/core/lib/CPAN/lib//arch /usr/local/src/git.foswiki.org/trunk/core/lib/CPAN/lib//5.10.1/x86_64-linux-gnu-thread-multi /usr/local/src/git.foswiki.org/trunk/core/lib/CPAN/lib//5.10.1 /usr/local/src/git.foswiki.org/trunk/core/lib/CPAN/lib/ This is the Perl library path, used to load Foswiki modules, third-party modules used by some plugins, and Perl built-in modules. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
System temporary directory | /tmp | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CGI bin directory | /usr/local/src/git.foswiki.org/trunk/core/bin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Foswiki module in @INC path | Foswiki.pm (Version: $Date$ $Rev$ ) found | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Perl modules |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PATH_INFO | For a URL such as http://peperomia-bp/foswikigit-trunk/bin/configure/foo/bar, the correct PATH_INFO is /foo/bar, without any prefixed path components. Test PATH_INFO now - particularly if you are using mod_perl, Apache or IIS, or are using a web hosting provider. Look at the new path info here. It should be /foo/bar. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mod_perl | Not used for this script (correct). mod_perl may be enabled for the other scripts. You can check this by visiting System in your wiki. mod_perl is not loaded into Apache |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CGI user | userid = www-data groups = www-data, www-data Your CGI scripts are executing as this user. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Original PATH | /usr/local/bin:/usr/bin:/bin This is the PATH value passed in from the web server to this script - it is reset by Foswiki scripts to the PATH below, and is provided here for comparison purposes only. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Current PATH | /usr/local/bin:/usr/bin:/bin This is the actual PATH setting that will be used by Perl to run programs. It is normally identical to {SafeEnvPath}, unless that variable is empty, in which case this will be the webserver user's standard path.. |
$this = $class->SUPER::new()
?
-- CrawfordCurrie - 11 Jun 2010
Paul,
How did you configure apache?
There should be something like:
PerlResponseHandler Foswiki::Engine::Apache-- GilmarSantosJr - 11 Jun 2010 Crawford, the superclass does not implement new either (still get missing method error). Gilmar, yes, this is the line, as per ApacheConfigGenerator -- PaulHarvey - 12 Jun 2010 I just installed ModPerlEngineContrib (from trunk) on a clean checkout and it worked well.
tools/mod_perl_startup.pl
loads Foswiki::Engine::Apache
, that adjusts $Foswiki::{Engine}
to Foswiki::Engine::Apache2::MP20
(in my environment). This one loads Foswiki::Engine::Apache2
. Foswiki::Engine::Apache
was already loaded, so was Foswiki::Engine
. It's very strange... try to test on a clean checkout and report the steps to reproduce, if the bug still shows.
I'm using Apache 2.2.15 with mod_perl 2.0.4 (Debian unstable).
-- GilmarSantosJr - 12 Jun 2010
mod_perl documentation has this to say about the use of PerlRequire
:
PerlRequire does the same thing as PerlPostConfigRequire, but you have almost no control of when this code is going to be executed. Therefore you should be using either PerlConfigRequire (executes immediately) or PerlPostConfigRequire (executes just before the end of the server startup) instead. Most of the time you want to use the latter.(emphasis mine) I think my problem is related the order in which my apache2 servers are loading various modules. Today I am on a new test host and have been getting the same problems. Replacing the
PerlRequire
had interesting results: PerlRequire
- failed to start, stupid error message: [error] Can't load Perl file: /usr/.../tools/mod_perl_startup.pl for server foo.org.au:0, exiting..., but works after adding 'missing' new() method
PerlModule
- success starting, success accessing wiki
PerlLoadModule
- success starting, success accessing wiki
PerlConfigRequire
- failed to start apache2 (same error as PerlRequire
), but success after after adding the 'missing' new() method
PerlPostConfigRequire
- failed to start apache2 (same as PerlRequire
), but success after after adding the 'missing' new() method
Summary | trunk: Can't locate object method "new" via package "Foswiki::Engine::Apache2::MP20" |
ReportedBy | PaulHarvey |
Codebase | trunk |
SVN Range | |
AppliesTo | Extension |
Component | ModPerlEngineContrib |
Priority | Normal |
CurrentState | Closed |
WaitingFor | |
Checkins | ModPerlEngineContrib:30c2201fe154 distro:42601840ff17 |
TargetRelease | major |
ReleasedIn | 2.0.0 |
CheckinsOnBranches | master |
trunkCheckins | |
masterCheckins | ModPerlEngineContrib:30c2201fe154 distro:42601840ff17 |
ItemBranchCheckins | |
Release02x01Checkins | |
Release02x00Checkins | |
Release01x01Checkins |