I'm using Embperl 1.3b3 and mod_perl 1.24. I'm trying to use Class::DBI in my
templates and when I hit a certain line in the page the child segfaults. This
definitely seems to be some kind of problem between Embperl and Class::DBI. I'm
able to run the same code from a plain old perl script and it works just fine.
Here's the template code:
<HTML>
<HEAD><TITLE>New Entry</TITLE></HEAD>
<BODY BGCOLOR=WHITE>
<H2>New Timesheet Entry</H2>
[.!
use TLC::Timesheets::Project;
TLC::Timesheets::Project->set_db('Main', 'dbi:mysql:phppm', 'root', '',
{AutoCommit => 1});
TLC::Timesheets::Project->table('projects');
TLC::Timesheets::Project->columns('All', qw(proj_id proj_cust proj_name
proj_owner proj_desc proj_quote proj_active proj_done proj_billed proj_version
proj_startdate proj_targetdate proj_url proj_num proj_principal proj_state
proj_rate));
TLC::Timesheets::Project->columns('Primary', 'proj_id');
require "functions.pl";
!]
[- @projects = TLC::Timesheets::Project->search_like('proj_num', '%') -]
The last line is where things are dying.
Here's the relevant line from the apache error log:
[Fri Jul 7 12:50:21 2000] [notice] child pid 32268 exit signal Segmentation
fault (11)
And here's the relevant info from the embperl.log:
[32269]MEM: Alloc 64 Bytes at 08155a88 Allocated so far 64 Bytes
[32269]MEM: Load
/opt/apache/dw3.teamlinux.net/443/htdocs/timesheets/entry.phtml in
HTML::Embperl::DOC::_1
[32269]MEM: Free 64 Bytes at 08155a84 Allocated so far 0 Bytes
[32269]REQ: Embperl 1.3b3 starting... Fri Jul 7 12:58:37 2000
[32269]REQ: No Safe Eval All Opcode allowed mode = mod_perl (3)
[32269]REQ: Package = HTML::Embperl::DOC::_1
[32269]Formdata... length = 0
[32269]Using APACHE for output...
[32269]Reading /opt/apache/dw3.teamlinux.net/443/htdocs/timesheets/entry.phtml
as input using PerlIO ...
[32269]SVs: Entry-SVs: 13125 -OBJs: 13 Curr-SVs: 13221 -OBJs: 16
[32269]MEM: Alloc 17 Bytes at 08155ad0 Allocated so far 17 Bytes
[32269]MEM: Alloc 22 Bytes at 08155ae8 Allocated so far 39 Bytes
[32269]MEM: Alloc 17 Bytes at 08155b08 Allocated so far 56 Bytes
[32269]MEM: Alloc 21 Bytes at 08155b20 Allocated so far 77 Bytes
[32269]MEM: Alloc 17 Bytes at 08155b40 Allocated so far 94 Bytes
[32269]MEM: Alloc 31 Bytes at 08155b58 Allocated so far 125 Bytes
[32269]MEM: Alloc 17 Bytes at 08155b80 Allocated so far 142 Bytes
[32269]MEM: Alloc 23 Bytes at 08155b98 Allocated so far 165 Bytes
[32269]MEM: Alloc 17 Bytes at 08155bb8 Allocated so far 182 Bytes
[32269]MEM: Alloc 23 Bytes at 08155bd0 Allocated so far 205 Bytes
[32269]MEM: Alloc 17 Bytes at 08155bf0 Allocated so far 222 Bytes
[32269]MEM: Alloc 36 Bytes at 08155c08 Allocated so far 258 Bytes
[32269]MEM: Alloc 17 Bytes at 08155c30 Allocated so far 275 Bytes
[32269]MEM: Alloc 38 Bytes at 08155c48 Allocated so far 313 Bytes
[32269]MEM: Alloc 17 Bytes at 08155c78 Allocated so far 330 Bytes
[32269]MEM: Alloc 22 Bytes at 08155c90 Allocated so far 352 Bytes
[32269]SVs: 17754
[32269]EVAL<
use TLC::Timesheets::Project;
TLC::Timesheets::Project->set_db('Main', 'dbi:mysql:phppm', 'root', '',
{AutoCommit => 1});
TLC::Timesheets::Project->table('projects');
TLC::Timesheets::Project->columns('All', qw(proj_id proj_cust proj_name
proj_owner proj_desc proj_quote proj_active proj_done proj_billed proj_version
proj_startdate proj_targetdate proj_url proj_num proj_principal proj_state
proj_rate));
TLC::Timesheets::Project->columns('Primary', 'proj_id');
require "functions.pl";
[32269]SVs: 18176
[32269]EVAL> 1
[32269]SVs: Entry-SVs: 13125 -OBJs: 13 Curr-SVs: 18174 -OBJs: 16
[32269]SVs: 18198
[32269]EVAL< @projects = TLC::Timesheets::Project->search_like('proj_num',
'%')
I've got EMBPERL_DEBUG set to 775.
Are there debug options i can set that will give me more info?
Thanks.
--
Jason Bodnar + jbodnar@team-linux.com + Team Linux
And anyone can be tooted?
-- Homer Simpson, on tutoring
The Way We Was
templates and when I hit a certain line in the page the child segfaults. This
definitely seems to be some kind of problem between Embperl and Class::DBI. I'm
able to run the same code from a plain old perl script and it works just fine.
Here's the template code:
<HTML>
<HEAD><TITLE>New Entry</TITLE></HEAD>
<BODY BGCOLOR=WHITE>
<H2>New Timesheet Entry</H2>
[.!
use TLC::Timesheets::Project;
TLC::Timesheets::Project->set_db('Main', 'dbi:mysql:phppm', 'root', '',
{AutoCommit => 1});
TLC::Timesheets::Project->table('projects');
TLC::Timesheets::Project->columns('All', qw(proj_id proj_cust proj_name
proj_owner proj_desc proj_quote proj_active proj_done proj_billed proj_version
proj_startdate proj_targetdate proj_url proj_num proj_principal proj_state
proj_rate));
TLC::Timesheets::Project->columns('Primary', 'proj_id');
require "functions.pl";
!]
[- @projects = TLC::Timesheets::Project->search_like('proj_num', '%') -]
The last line is where things are dying.
Here's the relevant line from the apache error log:
[Fri Jul 7 12:50:21 2000] [notice] child pid 32268 exit signal Segmentation
fault (11)
And here's the relevant info from the embperl.log:
[32269]MEM: Alloc 64 Bytes at 08155a88 Allocated so far 64 Bytes
[32269]MEM: Load
/opt/apache/dw3.teamlinux.net/443/htdocs/timesheets/entry.phtml in
HTML::Embperl::DOC::_1
[32269]MEM: Free 64 Bytes at 08155a84 Allocated so far 0 Bytes
[32269]REQ: Embperl 1.3b3 starting... Fri Jul 7 12:58:37 2000
[32269]REQ: No Safe Eval All Opcode allowed mode = mod_perl (3)
[32269]REQ: Package = HTML::Embperl::DOC::_1
[32269]Formdata... length = 0
[32269]Using APACHE for output...
[32269]Reading /opt/apache/dw3.teamlinux.net/443/htdocs/timesheets/entry.phtml
as input using PerlIO ...
[32269]SVs: Entry-SVs: 13125 -OBJs: 13 Curr-SVs: 13221 -OBJs: 16
[32269]MEM: Alloc 17 Bytes at 08155ad0 Allocated so far 17 Bytes
[32269]MEM: Alloc 22 Bytes at 08155ae8 Allocated so far 39 Bytes
[32269]MEM: Alloc 17 Bytes at 08155b08 Allocated so far 56 Bytes
[32269]MEM: Alloc 21 Bytes at 08155b20 Allocated so far 77 Bytes
[32269]MEM: Alloc 17 Bytes at 08155b40 Allocated so far 94 Bytes
[32269]MEM: Alloc 31 Bytes at 08155b58 Allocated so far 125 Bytes
[32269]MEM: Alloc 17 Bytes at 08155b80 Allocated so far 142 Bytes
[32269]MEM: Alloc 23 Bytes at 08155b98 Allocated so far 165 Bytes
[32269]MEM: Alloc 17 Bytes at 08155bb8 Allocated so far 182 Bytes
[32269]MEM: Alloc 23 Bytes at 08155bd0 Allocated so far 205 Bytes
[32269]MEM: Alloc 17 Bytes at 08155bf0 Allocated so far 222 Bytes
[32269]MEM: Alloc 36 Bytes at 08155c08 Allocated so far 258 Bytes
[32269]MEM: Alloc 17 Bytes at 08155c30 Allocated so far 275 Bytes
[32269]MEM: Alloc 38 Bytes at 08155c48 Allocated so far 313 Bytes
[32269]MEM: Alloc 17 Bytes at 08155c78 Allocated so far 330 Bytes
[32269]MEM: Alloc 22 Bytes at 08155c90 Allocated so far 352 Bytes
[32269]SVs: 17754
[32269]EVAL<
use TLC::Timesheets::Project;
TLC::Timesheets::Project->set_db('Main', 'dbi:mysql:phppm', 'root', '',
{AutoCommit => 1});
TLC::Timesheets::Project->table('projects');
TLC::Timesheets::Project->columns('All', qw(proj_id proj_cust proj_name
proj_owner proj_desc proj_quote proj_active proj_done proj_billed proj_version
proj_startdate proj_targetdate proj_url proj_num proj_principal proj_state
proj_rate));
TLC::Timesheets::Project->columns('Primary', 'proj_id');
require "functions.pl";
[32269]SVs: 18176
[32269]EVAL> 1
[32269]SVs: Entry-SVs: 13125 -OBJs: 13 Curr-SVs: 18174 -OBJs: 16
[32269]SVs: 18198
[32269]EVAL< @projects = TLC::Timesheets::Project->search_like('proj_num',
'%')
I've got EMBPERL_DEBUG set to 775.
Are there debug options i can set that will give me more info?
Thanks.
--
Jason Bodnar + jbodnar@team-linux.com + Team Linux
And anyone can be tooted?
-- Homer Simpson, on tutoring
The Way We Was