On Sep 21, 2004, at 2:58 AM, [EMAIL PROTECTED] wrote:

On Mon, 20 Sep 2004, Kevin Scaldeferri wrote:

The current version of Devel::Cover asserts that running it on a
mod_perl server ought to be as simple as adding 'use Devel::Cover' to
your startup script.  However, when I do this, I get the following
failure:
...

I use the patch listed below. It fixes this bug and also sets permission 0777
to a cover_db directory as it is created when apache runs as root, so when it
changes it's UID it can write to this directory.


P.S. And don't forget to use -X switch when starting httpd.


Hi Vadim,

This patch gets rid of that error, and now my server starts up. I admit that I don't really understand its magic (eval 'BEGIN{1}'???), but it's progress.

Now, I can get my server to start and it more-or-less seems to work if I send a couple queries through. That is, if I run 'cover' right after starting, it shows some coverage that seems to reasonably correspond to my startup script. And, after querying it and killing httpd, I get some coverage increase that seems right.

However, I seem to be having problems with stability when I run lots of tests (a couple thousand). After I do this, something seems unhappy in the internals, and when I try to kill apache, I get a bunch of this sort of stuff:

----- Call Stack Trace -----
Cannot open /proc/16071/exe.
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
Cannot find symbol in /proc/16071/exe.
Cannot find symbol in /proc/16071/exe.
Cannot find symbol in /proc/16071/exe.
Cannot find symbol in /proc/16071/exe.
Cannot find symbol in /proc/16071/exe.
Cannot find symbol in /proc/16071/exe.
Cannot find symbol in /proc/16071/exe.
41261E1B CALL 410E2CF0 BFFF269C ? 41261DDD ?
41906F4C ? 418D8440 ?
4E455645 ? 31325F54 ?
4163B5BA CALLr 00000000 BDAAC4C ? BDAAC4C ?
BFFF2B24 ? 4000D4E0 ?
4149B41C CALL 410CB940 4149B280 ? 0 ? 0 ? 0 ?
41372C16 CALLr 00000000 BDBB56C ? 4148CEAD ?
41906F4C ? BDB995C ?
411C6D9E CALLr 00000000 BDBB56C ? BFFF2BBC ?
41906F4C ? 0 ? 9 ? 0 ?
... many hundreds of lines ...


and if I run 'cover', none of the coverage from my tests appears.

So, I don't expect anyone to try to figure out this stack trace stuff, but I'm curious if other people have seen stability problems like this? Alternatively, if someone can tell me the exact logistics of how they get the coverage out in the end, I'd appreciate it. Is there another way than 'kill'ing the apache process to get Devel::Cover to write its data? It seems to do it at one point during startup, but after that it looks like it just stays in memory, which I end up losing when things go bad terminating the process.


Thanks,

Kevin



Reply via email to