missing subroutines, am also sending this to p5p, maybe someone here has an
idea?]
Rereading my original post, it appears I may not have been explicit enough
about what the problem appears to be. Starting with the error message:
[error] Error executing run mode 'display': Can't locate object method
"page" via package "Class::CGI::Welcome" at /classes/Class/CGI/Welcome.pm
line 34.\n at (eval 1361)
This says the class cannot find the method called. That's fine, but why not?line 34.\n at (eval 1361)
Presumably because the class is not loaded (usual error), or because the
class has been modified (current error). The code which I can see from
within modperl, (using the debugger), is the correct and up-to-date code,
_but_ it has been snipped off at the neck. So I can see the top of the file,
but all the subroutines have been removed...
I hope that's a bit clearer ?-)
Any help appreciated - TIA.
R.
On Wednesday 22 November 2006 12:28, Richard Foley wrote:
I'm seeing some strange behaviour with modperl, it appears to be truncating
the module code for certain files. Firstly, the code runs fine under CGI and
using a similar commandline setup. Next, there's a apache/conf/startup.pl
script which loads all the expected modules at startup, and the library files
are all their via a manual (commandline) run. Everything appears ok when
apache starts up.
[notice] Apache/1.3.36 (Unix) mod_perl/1.29 configured -- resuming normal
operations
Again, under 'normal' cgi usage there are no problems, however, as soon as a
page is requested from the server, a log file entry of the form:
[error] Error executing run mode 'display': Can't locate object method
"page" via package "Class::CGI::Welcome" at /classes/Class/CGI/Welcome.pm
line 34.\n at (eval 1361)
[/usr/lib/perl5/site_perl/5.8.7/i586-linux-thread-multi/Apache/Registry.pm:184]
line 5\n
Now, the Class::CGI::Welcome module is loaded. I can even see the correct and
up to date code entry under @{main::_<$pathtowelcomedotpm}, _but_, the code
simply stops after 20 lines, so that the page() method is (clearly because
it's not there) not found. What I mean is that the first 20 lines of the
module can be seen, and the rest appears to have been inconveniently and
completely truncated for some unknown reason.
Has anyone seen this before? Am I being remarkably slow here? Any helpful
hints appreciated.
$> perl -V
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=linux, osvers=2.6.13-15-smp, archname=i686-linux-thread-multi
uname='linux linux225 2.6.13-15-smp #1 smp tue sep 13 14:56:15 utc 2005
i686 i686 i386 gnulinux '
config_args='-des
-Dotherlibdirs=/usr/lib/perl5/5.8.7:/usr/lib/perl5/5.8.7/i586-linux-thread-multi:/usr/lib/perl5/site_perl:/usr/lib/perl5/site_perl/5.8.7:/usr/lib/perl5/site_perl/5.8.7/i586-linux-thread-multi:/usr/lib/perl5/vendor_perl:/usr/lib/perl5/vendor_perl/5.8.7:/usr/lib/perl5/vendor_perl/5.8.7/i586-linux-thread-multi
-Dinstallusrbinperl -Dusethreads'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
-fno-strict-aliasing -pipe -Wdeclaration-after-statement
-I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
-fno-strict-aliasing -pipe -Wdeclaration-after-statement
-I/usr/local/include'
ccversion='', gccversion='4.0.2 20050901 (prerelease) (SUSE Linux)',
gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=/lib/libc-2.3.5.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.3.5'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP THREADS_HAVE_PIDS USE_ITHREADS
USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API
Built under linux
Compiled at Oct 20 2006 15:27:16
@INC:
/usr/local/lib/perl5/5.8.8/i686-linux-thread-multi
/usr/local/lib/perl5/5.8.8
/usr/local/lib/perl5/site_perl/5.8.8/i686-linux-thread-multi
/usr/local/lib/perl5/site_perl/5.8.8
/usr/local/lib/perl5/site_perl
/usr/lib/perl5/5.8.7
/usr/lib/perl5/5.8.7/i586-linux-thread-multi
/usr/lib/perl5/site_perl
/usr/lib/perl5/site_perl/5.8.7
/usr/lib/perl5/site_perl/5.8.7/i586-linux-thread-multi
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/vendor_perl/5.8.7
/usr/lib/perl5/vendor_perl/5.8.7/i586-linux-thread-multi
--
Richard Foley
Ciao - shorter than aufwiedersehen
http://www.rfi.net/
--I'm seeing some strange behaviour with modperl, it appears to be truncating
the module code for certain files. Firstly, the code runs fine under CGI and
using a similar commandline setup. Next, there's a apache/conf/startup.pl
script which loads all the expected modules at startup, and the library files
are all their via a manual (commandline) run. Everything appears ok when
apache starts up.
[notice] Apache/1.3.36 (Unix) mod_perl/1.29 configured -- resuming normal
operations
Again, under 'normal' cgi usage there are no problems, however, as soon as a
page is requested from the server, a log file entry of the form:
[error] Error executing run mode 'display': Can't locate object method
"page" via package "Class::CGI::Welcome" at /classes/Class/CGI/Welcome.pm
line 34.\n at (eval 1361)
[/usr/lib/perl5/site_perl/5.8.7/i586-linux-thread-multi/Apache/Registry.pm:184]
line 5\n
Now, the Class::CGI::Welcome module is loaded. I can even see the correct and
up to date code entry under @{main::_<$pathtowelcomedotpm}, _but_, the code
simply stops after 20 lines, so that the page() method is (clearly because
it's not there) not found. What I mean is that the first 20 lines of the
module can be seen, and the rest appears to have been inconveniently and
completely truncated for some unknown reason.
Has anyone seen this before? Am I being remarkably slow here? Any helpful
hints appreciated.
$> perl -V
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=linux, osvers=2.6.13-15-smp, archname=i686-linux-thread-multi
uname='linux linux225 2.6.13-15-smp #1 smp tue sep 13 14:56:15 utc 2005
i686 i686 i386 gnulinux '
config_args='-des
-Dotherlibdirs=/usr/lib/perl5/5.8.7:/usr/lib/perl5/5.8.7/i586-linux-thread-multi:/usr/lib/perl5/site_perl:/usr/lib/perl5/site_perl/5.8.7:/usr/lib/perl5/site_perl/5.8.7/i586-linux-thread-multi:/usr/lib/perl5/vendor_perl:/usr/lib/perl5/vendor_perl/5.8.7:/usr/lib/perl5/vendor_perl/5.8.7/i586-linux-thread-multi
-Dinstallusrbinperl -Dusethreads'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
-fno-strict-aliasing -pipe -Wdeclaration-after-statement
-I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
-fno-strict-aliasing -pipe -Wdeclaration-after-statement
-I/usr/local/include'
ccversion='', gccversion='4.0.2 20050901 (prerelease) (SUSE Linux)',
gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib
libs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=/lib/libc-2.3.5.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.3.5'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP THREADS_HAVE_PIDS USE_ITHREADS
USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API
Built under linux
Compiled at Oct 20 2006 15:27:16
@INC:
/usr/local/lib/perl5/5.8.8/i686-linux-thread-multi
/usr/local/lib/perl5/5.8.8
/usr/local/lib/perl5/site_perl/5.8.8/i686-linux-thread-multi
/usr/local/lib/perl5/site_perl/5.8.8
/usr/local/lib/perl5/site_perl
/usr/lib/perl5/5.8.7
/usr/lib/perl5/5.8.7/i586-linux-thread-multi
/usr/lib/perl5/site_perl
/usr/lib/perl5/site_perl/5.8.7
/usr/lib/perl5/site_perl/5.8.7/i586-linux-thread-multi
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/vendor_perl/5.8.7
/usr/lib/perl5/vendor_perl/5.8.7/i586-linux-thread-multi
--
Richard Foley
Ciao - shorter than aufwiedersehen
http://www.rfi.net/
Richard Foley
Ciao - shorter than aufwiedersehen
http://www.rfi.net/