Forum OpenACS Development: Memory usage growing with irc-logger package

Request notifications

I've been running the irc-logger package for some days without problems on a live site, but recently it started to make nsd's memory usage grow beyond reasonable limits (actually it crashed the machine but that was an os config problem). The memory growth could be reproduced to running the scheduled proc irc::logger::update_log, where on that day there was a comparable large chatlog (the log converted to html is ~0.5MB).

As far as I could see there was an error related to releasing dom trees in irc::logger::apply_xslt - it deleted only the one of the generated html but not of the parsed rdf and xsl files. I fixed that and committed the fix to oacs-5-1.

However it still makes nsd's memory usage grow. I tried to call the new irc::logger::apply_xslt repeatedly and it turned out not to be the culprit - only when calling irc::logger::update_log itself the nsd memory usage grows reproducably. I'm totally stuck here - I can't see anything in that proc besides the dom parsing (which is ruled out since it's all done in irc::logger::apply_xslt) that could be the cause of this. Can anybody tell me what's going on here, or has anybody had a similar experience?

Posted by Bart Teeuwisse on

thanks for the patch Tilmann. However, your patch works only when the XSL transformation is successful. Should the transformation fail along the way then not all 3 DOM trees are there (HTML, RDF and XSL) and thus one or more of the tree delete statements would fail, potentially leaving one or more of the other (valid) trees behind.

I patched irc::logger::apply_xslt accordingly on HEAD. (Isn't that where all new development should go?).


P.S. Could you give me -as the maintainer- a heads up next time you have patches to irc-logger? Thanks.

Posted by Tilmann Singer on
Oops, I had all 3 delete statements independently wrapped in catch blocks before, but had removed it while testing the memory issues and forgot to put them back, sorry.

I committed to oacs-5-1 because it's a bug fix and not a new feature, so I thought that would be ok. Will coordinate with you next time.