We have a line-of-last-defense script that monitors a Cinemon server for failures/performance problems and kills/restarts the server if problems are detected. It's been running perfectly well for months upon months on multiple machines, but somehow it's started leaking memory on one (production-but-running-CVS-head) machine.
It's a ridiculously simple script (intentionally). It just retrieves a page using web.client.getPage(...) and decides whether to restart the server based on whether the request times out (or otherwise fails). There's nothing storing values, there's no infinite chaining of deferreds, nothing of the sort that should produce a leak, yet the process reaches 400+MB after 15 days or so (at which point it starts to interfere with the main process).
I'm suspicious that it's either the SMTP email-sending (problem alerts) or the getPage call that's leaking, but I'll have to go over the code a couple more times before I can really be sure it's not something stupid I'm doing (after all, I've been doing some fairly major surgery in the project over the last few weeks).
Luckily I'm 1/2 through a large cup of very strong (but very tasty) black tea, so I've hours of productive work still ahead... I'd forgotten how tasty good black tea could be (this is one of those varietal black Starbucks teas). Sure I'll feel like garbage tomorrow, but I want to get some heavy hacking done tonight.
Pingbacks are closed.