-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Sat, Jun 15, 2002 at 09:49:47AM -0700, Doug MacEachern wrote:
> can't read your message. could you say again without pgp?
Yeah, I forgot to patch the latest mutt to not do stupid PGP/MIME. Let's try
again....
- -----Begin-----
Has anyone else had issues with this? For me the server doesn't even start (it
doesn't even survive the first Perl command called, which is a use lib):
stephenc@stephenc ~ $ ~/bin/apache/bin/httpd -X -D PERLDB
[notice] Apache::DB initialized in child 5121
[Fri Jun 14 16:18:16 2002] [error] No DB::DB routine defined at
/home/stephenc/bin/perl-5.8.0-RC1/lib/lib.pm line 10.
Compilation failed in require at
/home/stephenc/bin/apache/conf/mod_perl.startup.pl line 1.
BEGIN failed--compilation aborted at
/home/stephenc/bin/apache/conf/mod_perl.startup.pl line 1.
Compilation failed in require at (eval 5) line 1.
What's really bizarre is what's going on under the hood:
stephenc@stephenc ~ $ gdb ~/bin/apache/bin/httpd
GNU gdb 5.1.1
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(gdb) directory ~/build/perl-5.8.0-RC1
Source directories searched: /home/stephenc/build/perl-5.8.0-RC1:$cdir:$cwd
(gdb) b pp_ctl.c:1573
Breakpoint 1 at 0x8146144: file pp_ctl.c, line 1573.
(gdb) run -X -D PERLDB
Starting program: /home/stephenc/bin/apache/bin/httpd -X -D PERLDB
[notice] Apache::DB initialized in child 5280
Breakpoint 1, Perl_pp_dbstate () at pp_ctl.c:1573
1573 gv = PL_DBgv;
(gdb) watch gv
Watchpoint 2: gv
(gdb) n
1574 cv = GvCV(gv);
(gdb) n
Watchpoint 2: gv
Old value = (GV *) 0x82910e8
New value = (GV *) 0x81e3958
0x0814614b in Perl_pp_dbstate () at pp_ctl.c:1574
1574 cv = GvCV(gv);
(gdb) bt
#0 0x0814614b in Perl_pp_dbstate () at pp_ctl.c:1574
#1 0x081115c3 in Perl_runops_debug () at dump.c:1398
#2 0x080cfedf in S_call_body (myop=0xbfffd37c, is_eval=0) at perl.c:2039
#3 0x080ccbb1 in Perl_call_sv (sv=0x828d2bc, flags=6) at perl.c:1957
#4 0x080cff2e in S_call_list_body (cv=0x828d2bc) at perl.c:4064
#5 0x080cf0b7 in Perl_call_list (oldscope=4, paramList=0x828d28c)
at perl.c:3992
#6 0x080fe056 in Perl_newATTRSUB (floor=303, o=0x828e860, proto=0x0, attrs=0x0,
block=0x828e780) at op.c:5100
#7 0x080fa4e3 in Perl_utilize (aver=1, floor=303, version=0x0, id=0x828e1e8,
arg=0x828e678) at op.c:3445
#8 0x080f3a71 in Perl_yyparse () at perly.y:414
#9 0x08148e11 in S_doeval (gimme=0, startop=0x0) at pp_ctl.c:2771
#10 0x0814a2de in Perl_pp_require () at pp_ctl.c:3254
#11 0x081115c3 in Perl_runops_debug () at dump.c:1398
#12 0x080ccfcc in Perl_eval_sv (sv=0x828d160, flags=2) at perl.c:2039
#13 0x08087bd0 in perl_load_startup_script (s=0x81c422c, p=0x81c4204,
script=0x81d1114 "/home/stephenc/bin/apache/conf/mod_perl.startup.pl",
my_warn=1) at perl_util.c:572
#14 0x0808252f in perl_cmd_require (parms=0xbffff94c, dummy=0x81c4dc4,
arg=0x81d1114 "/home/stephenc/bin/apache/conf/mod_perl.startup.pl") at
perl_config.c:626
#15 0x0809f88e in invoke_cmd ()
#16 0x0809fd11 in ap_handle_command ()
#17 0x0809fdad in ap_srm_command_loop ()
#18 0x080a0479 in ap_process_resource_config ()
#19 0x080a0e00 in ap_read_config ()
#20 0x080ac09c in main ()
#21 0x400a23c1 in __libc_start_main () from /lib/libc.so.6
(gdb) call Perl_sv_dump(PL_DBgv)
SV = PVGV(0x81e3958) at 0x81e37d8
REFCNT = 1
FLAGS = (GMG,SMG,MULTI)
IV = 0
NV = 0
MAGIC = 0x81e3990
MG_VIRTUAL = &PL_vtbl_glob
MG_TYPE = PERL_MAGIC_glob(*)
MG_OBJ = 0x81e37d8
NAME = "DB"
NAMELEN = 2
GvSTASH = 0x81d2128 "DB"
GP = 0x81e1da8
SV = 0x8281e40
REFCNT = 1
IO = 0x0
FORM = 0x0
AV = 0x0
HV = 0x0
CV = 0x0
CVGEN = 0x0
GPFLAGS = 0x0
LINE = 17
FILE = "/home/stephenc/bin/perl-5.8.0-RC1/lib/Apache/DB.pm"
FLAGS = 0x2
EGV = 0x81e37d8 "DB"
(gdb) call Perl_sv_dump(gv)
SV = NULL(0x0) at 0x81e3958
REFCNT = 0
FLAGS = ()
Obviously PL_DBgv is correct, but something is causing the local variable to
mutate during the call to GvCV. My noodle is thoroughly baked on this one
(GvCV looks to be a read-only macro, so I fail to see what's changing the
value). So I'm throwing it out here for Doug (since Apache::DB's his baby) and
anyone else that cares to ponder it.
On a side note, we've also had sporadic problems under 5.6.1 returning the same
"No DB::DB routine" error -- but only when certain modules are loaded (sheesh,
at least it's consistently busted under 5.8). The most notorious in this
context are XML::DOM and Convert::ASN1 (which loads as a prereq to Net::LDAP).
One of my colleagues sent this around to a couple other lists but got absolutely
no responses. I've planned to look at this as well, but with 5.8 being imminent
we plan to upgrade immediately, so I've shelved it for now and focused on
making sure 5.8 takes a liking to it. I can dig around with 5.6.1 if someone
wants me to.
So, in short, I'm not sure we've ever actually been able to use Apache::DB :)
I'd be appreciative of anything on this, even wild guesses.
- -----End-----
- --
Stephen Clouse <[EMAIL PROTECTED]>
Senior Programmer, IQ Coordinator Project Lead
The IQ Group, Inc. <http://www.theiqgroup.com/>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE9C64OA4aoazQ9p2cRAjLHAKD6sjPGm7sdH8XmrgyHeN1iQFmZJwCfcJ2+
OJ+GGMaNU2M44ozMe/0XEH8=
=5jWP
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]