Category archives: Snaking
Discussions of programming, particularly of programming Python
Oh, yes, the memory-leak safari continues... (Just in case anyone cares...)
Written by
on
in
Snaking.
Tracking down the memory leak is not going well. So far each time I think I've isolated a test case that produces a leak it eventually stabilises at some memory level after an hour or two of operation.
There's something funky going on that I'm thinking may be a reference loop that's requiring the cyclic ...!-->!-->
Doesn't look like it's in any condition to update to using v4 (PySNMP is hard enough to use with full releases...)
Written by
on
in
Snaking.
After a few attempts to get everything working with PySNMP v4a1, think I'm going to have to shelve that work and move back to PySNMP 3.x. Whatever fixes may have shown up, the amount of rewriting it's requiring is just too much to consider in the middle of trying to track down this memory leak. ...
Seem to have fallen behind in tracking PySNMP (Apparently there's a version 4 now...)
Written by
on
in
Snaking.
PySNMP (which is where I'm trying to track down the memory leak at the moment) appears to have a new version in development (in CVS). Really should have been paying attention to what changed before I hit "update" in the CVS module. Looks like some pretty serious refactoring.
Also appears to have a MIB parser ...!-->!-->
Need to put together a PyCon presentation proposal (or three) ("Functional embarrassment to exploding decorators, the creation myth of descriptors")
Written by
on
in
Snaking.
Also would be nice to have PyOpenGL-as-ctypes as a presentation, but that requires getting enough time to actually finish (heck, start) the project.
Maybe should do something for BasicProperty, PyTable and wxOO, just a quicky "save yourself some work" thing. Maybe build a wxPython UI for Cinemon just to be perverse :) .
Hmm, ...!-->!-->!-->!-->
Anyone know a decent tool for finding memory leaks? (Even being able to reliably and automatically determine *if* there's a leak would be good...)
Written by
on
in
Snaking.
Pinning down memory leaks in large-ish systems with large numbers of libraries is a bit of a pain. I wind up using the silly Windows task manager (yes, I'm still using Windows, despite having fixed Linux (sort-of) a while ago). Sure, I don't do this very often, but would be nice to have tools when ...
Memory leaks in TwistedSNMP (Tracking things down that shouldn't leak...)
Written by
on
in
Snaking.
Seems as though there's something leaking memory in TwistedSNMP (I've been tracking down Cinemon's leak). Doesn't appear to be particularly large, but with the number of queries Cinemon does, could be a contributor. Haven't yet figured out where the silly error is inside TwistedSNMP (more precisely, I've determined which test cases are leaking, I just ...
Words formed from serendipitous (Natasha's obsession...)
Written by
on
in
Snaking.
Natasha caught wind of Alan's wife's "serendipitous" words challenge. She's apparently up to 250 words... running the word-finder script, however, says that there's something like 1845 words in total (though that includes abbreviations and proper nouns)... hopefully it's not distracting her from writing the novel.
Still a leak... (Though much slower now)
Written by
on
in
Snaking.
Cinemon still has a leak somewhere. It's pretty large still, about 6MB/hr. That should exhaust system memory in about two weeks and cause a reboot :( . Much better than 19 hours, but nothing like acceptable (no leak is acceptable). Grr.
Next most likely culprit would be PySNMP's message cache, I suppose. After that, possibly ...!-->!-->
A new PyDispatcher release (Hopefully this fixes the memory leak in Cinemon..)
Written by
on
in
Snaking.
Found a memory leak in how Dispatcher deals with it's back-reference table. Basically it would allow you to replace a registratation of a receiver, but would not remove the replaced receiver's back-references. It also wasn't removing the back-reference when a signal was explicitly disconnected.
Both of those operations are fairly rare, but Cinemon does them ...!-->!-->
Thinking as I try to find the Cinemon leak... (Considerations as the test-suite trundles)
Written by
on
in
Snaking.
I think it's time to move PyOpenGL off of SWIG and on to ctypes. Rene did some preliminary work on this... well... it's a while ago now. The basic C-style API isn't that hard, it's replicating the Pythonic API that causes the problems. It's likely worth the pain just to reduce build problems, the flexibility ...