[i moved this discussion to the developers' forum as i think it is more suitable for my problem.]
thanks to martin and marcus for your hints for debugging. unfortunately it did not bring any results.
what i did so far:
* i discovered a memory-leak when i use roxen 4+ or chilimoon running with pike 7.4.*, 7.6.* (i have tested many different releases and fresh from cvs). this happens with a website connecting to an oracle db. memory demand grew to several hundred MBs within an hour or two of rather heavy requests.
* this has been reproduced on three different hosts (all running linux).
* roxen / debug information / Pike memory usage information shows more or less constant memory demand (total: 12000 kB).
* the same website on roxen Pike v7.2 release 543 shows no memory leaks (constant memory demand ~38 MB). i used the same oracle libraries so i guess they are not leaking.
* compiling pike 7.6 with-dmalloc and running roxen with: twice i managed to run and exit roxen cleanly but i got no memory leaks reported (last message was "counting bytes")
* running hilfe with pike 7.6 with-dmalloc and doing some queries on oracle did also not report any memory leaks after exiting normally.
* tried to run roxen or pike with valgrind but it failed. # valgrind --leak-check=yes --trace-children=yes --tool=memcheck (see error messages below)
i have never used valgrind before and could not find any hints with google. anybody else knows how to use valgrind with pike?
any further advice?
/michael
=====8<=====8<=====8<=====8<===== pike error messages when running with valgrind:
/usr/local/pike/7.6.25/lib/master.pike:396: Failed to index module 'Files' with 'Stat' (module doesn't exist?) /usr/local/pike/7.6.25/lib/master.pike:1322: Failed to index module 'Files' with 'Stat' (module doesn't exist?) /usr/local/pike/7.6.25/lib/master.pike:2212: Failed to index module 'Files' with 'Stat' (module doesn't exist?) /usr/local/pike/7.6.25/lib/master.pike:2225: Cannot inherit program which is not fully compiled yet. /usr/local/pike/7.6.25/lib/master.pike:2230: Cannot inherit program which is not fully compiled yet. /usr/local/pike/7.6.25/lib/master.pike:3863: Failed to index module 'Builtin' with 'array_iterator' (module doesn't exist?) /usr/local/pike/7.6.25/lib/master.pike:4231: Cannot inherit program which is not fully compiled yet. /usr/local/pike/7.6.25/lib/master.pike:4238: No inherit or surrounding class Encoder. /usr/local/pike/7.6.25/lib/master.pike:4243: Cannot inherit program which is not fully compiled yet.
/ Michael J. Stenitzer
Previous text:
2004-09-24 09:16: Subject: memory leak in oracle module
First of all, if I recall correctly, dmalloc takes quite a bit of time to finish up. If there is a leak, it is possible that your pike is acctually doing something useful.
Another option, might be to attempt to run roxen in Valgrind. I don't know if this can be done or if it is recommenden at all, but it could be worth a try...
/ Marcus Agehall (PacketFront)