You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl@perl.apache.org by Michael Blakeley <mi...@blakeley.com> on 2000/12/18 05:45:03 UTC
possible 1.3 bug(s)
I've recently been installing 1.3 on a fresh system (Perl 5.6.0,
Linux 2.2.16) and noticed some problems.
First, embpexec.pl doesn't seem to be installed by default when I run
'make install'. Previous versions installed it under HTML, so I just
copied it there.
After doing that, I created a hello.epl:
<html>
<head>
</head>
<body>
<p>[+ "hello" +]
</body>
</html>
And running
$ /home/mblakele/lib/site_perl/i386-linux/HTML/embpexec.pl hello.epl
produces the output you'd expect:
<html>
<head>
</head>
<body>
<p>hello
</body>
</html>
But when I try to run Embperl in my sandbox (httpd -X) I get nothing
- not even headers - httpd exits with no message. By adding
PERL5OPT=-d
PERLDB_OPTS='NonStop=1 AutoTrace=0'
I see the following exit message:
Signal SEGV at
/home/mblakele/lib/site_perl/i386-linux/HTML/Embperl.pm line 1193
HTML::Embperl::handler('*HTML::Embperl::DOC::_1::dbgCmd',
'*HTML::Embperl::DOC::_1::dbgAllCmds', 'Apache=SCALAR(0x83728e4)')
called at /dev/null line 0
require 0 called at /dev/null line 0
My httpd.conf contains
SetEnv EMBPERL_DEBUG 2797
SetEnv EMBPERL_LOG /tmp/mblakele/embperl.log
<Files *.epl>
SetHandler perl-script
PerlHandler HTML::Embperl
Options ExecCGI
</Files>
AddType text/html .epl
The embperl log shows
[19178]REQ: Embperl 1.3.0 starting... Sun Dec 17 19:41:03 2000
[19178]REQ: No Safe Eval All Opcode allowed mode = mod_perl (3)
[19178]REQ: Package = HTML::Embperl::DOC::_1
[19178]Formdata... length = 0
[19178]Using APACHE for output...
[19178]Reading /home/mblakele/jamlist/html/hello.epl as input using PerlIO ...
[19178]SRC: Line 1: <html>
[19178]SRC: Line 1: <head>
[19178]SRC: Line 2: </head>
[19178]SRC: Line 3: <body>
[19178]CMD: Cmd = 'body'
[19178]SRC: Line 4: <p>[+ "hello" +]
[19178]SRC: Line 5: [+ "hello" +]
So it looks like I'm getting a SEGV just as Embperl tries to eval that string.
I'm not sure if this is related, but... make test succeeded for
offline tests, but the mod_perl testing exited with
Syntax error on line 40 of
/tmp/mblakele/cpan-build/HTML-Embperl-1.3.0/test/conf/httpd.conf:
Can't locate lib.pm in @INC (@INC contains:
/usr/local/lib/perl5/5.6.0/i586-linux /usr/local/lib/perl5/5.6.0
/usr/local/lib/perl5/site_perl/5.6.0/i586-linux
/usr/local/lib/perl5/site_perl/5.6.0 /usr/local/lib/perl5/site_perl
/tmp/mblakele/cpan-build/HTML-Embperl-1.3.0/test/
/tmp/mblakele/cpan-build/HTML-Embperl-1.3.0/test/lib/perl) at
/tmp/mblakele/cpan-build/HTML-Embperl-1.3.0/test/conf/startup.pl line
2.
BEGIN failed--compilation aborted at
/tmp/mblakele/cpan-build/HTML-Embperl-1.3.0/test/conf/startup.pl line
2.
Compilation failed in require at (eval 1) line 1.
That line is
use lib qw{ . } ;
But I can run that just fine from the command line, with perl -e. I
suspect an environment problem - perl -V says
%ENV:
PERL5LIB="/home/mblakele/lib/site_perl:/home/mblakele/lib/site_perl/i386-linux:/home/mblakele/lib/site_perl/i386-linux/auto:/usr/lib/perl5:/usr/lib/perl5/i386-linux:/usr/lib/perl5/site_perl/i386-linux:/usr/lib/perl5/site_perl"
@INC:
/home/mblakele/lib/site_perl/i386-linux
/home/mblakele/lib/site_perl
/home/mblakele/lib/site_perl/i386-linux
/home/mblakele/lib/site_perl/i386-linux/auto
/usr/lib/perl5/i386-linux
/usr/lib/perl5
/usr/lib/perl5/i386-linux
/usr/lib/perl5/site_perl/i386-linux
/usr/lib/perl5/site_perl/i386-linux
/usr/lib/perl5/site_perl
/usr/lib/perl5/i386-linux
/usr/lib/perl5
/usr/lib/perl5/site_perl/i386-linux
/usr/lib/perl5/site_perl
/usr/lib/perl5/site_perl
.
So it seems like make test is somehow overwriting my @INC (the
/home/mblakele stuff is missing in the error message, and so are the
i386-linux dirs) - or at least ignoring %ENV. But I don't see
anything like this in test.pl
I also tried the debugger:
$ perl -d test.pl -h
Default die handler restored.
Loading DB routines from perl5db.pl version 1.07
Editor support available.
Enter h or `h h' for help, or `man perldebug' for more help.
loading... main::(test.pl:6): @testdata = (
main::(test.pl:7): 'ascii' => { },
main::(test.pl:8): 'pure.htm' => { },
main::(test.pl:9): 'plain.htm' => {
main::(test.pl:10): repeat => 3,
DB<1> p @INC
/home/mblakele/lib/site_perl/i386-linux/home/mblakele/lib/site_perl/home/mblakele/lib/site_perl/i386-linux/home/mblakele/lib/site_perl/i386-linux/auto/usr/lib/perl5/i386-linux/usr/lib/perl5/usr/lib/perl5/i386-linux/usr/lib/perl5/site_perl/i386-linux/usr/lib/perl5/site_perl/i386-linux/usr/lib/perl5/site_perl/usr/lib/perl5/i386-linux/usr/lib/perl5/usr/lib/perl5/site_perl/i386-linux/usr/lib/perl5/site_perl/usr/lib/perl5/site_perl.
...which looks fine. So I'm lost... Any idea why @INC is changing as
test.pl runs? Or why I can't get mod_perl to execute Embperl?
thanks,
-- Mike
Re: possible 1.3 bug(s)
Posted by Gerald Richter <ri...@ecos.de>.
> I've recently been installing 1.3 on a fresh system (Perl 5.6.0,
> Linux 2.2.16) and noticed some problems.
>
> First, embpexec.pl doesn't seem to be installed by default when I run
> 'make install'. Previous versions installed it under HTML, so I just
> copied it there.
>
MakeMaker does this install. I guess the new MakeMaker version of Perl 5.6
doesn't do this anymore.
>
> I'm not sure if this is related, but... make test succeeded for
> offline tests, but the mod_perl testing exited with
>
I think we should first get your make test run. That would make it much more
easier to debug the rest (if it still fails afterwards)
>
> So it seems like make test is somehow overwriting my @INC (the
> /home/mblakele stuff is missing in the error message, and so are the
> i386-linux dirs) - or at least ignoring %ENV.
If you ask me, I would say you have two different Perl installed on your
system and the one you compiled Embperl with is not the one you compiled
mod_perl with. mod_perl set the @INC to the pathes of the Perl ist was
compiled with. Please first make sure make test of modperl works, before we
continue
Gerald
-------------------------------------------------------------
Gerald Richter ecos electronic communication services gmbh
Internetconnect * Webserver/-design/-datenbanken * Consulting
Post: Tulpenstrasse 5 D-55276 Dienheim b. Mainz
E-Mail: richter@ecos.de Voice: +49 6133 925151
WWW: http://www.ecos.de Fax: +49 6133 925152
-------------------------------------------------------------