Category archives: Snaking
Discussions of programming, particularly of programming Python
For those of you following along with the home game (When spec meets reality part LXVIII)
Written by
on
in
Snaking.
Wondering what all the silence on the Cinemon side is? Well, just me quietly pounding my head against the ping scanner. Still getting occasional PyPgSQL crashes, but I'm basically chalking those up to the number of threads trying to use PyPgSQL simultaneously.
Scanner has been simulating for hours now (No memory leaks, and no crashes evident)
Written by
on
in
Snaking.
But at the current settings it could be as much as 20 minutes (in a worse-case scenario) before the scanner notices an offline low-level branch. It's currently taking ~4% of CPU, so I can likely rachet up the maximum group-ping frequency to 5 minutes or so and still have acceptable performance. Will need to work ...
Scanner has been simulating for hours now (No memory leaks, and no crashes evident)
Written by
on
in
Snaking.
But at the current settings it could be as much as 20 minutes (in a worse-case scenario) before the scanner notices an offline low-level branch. It's currently taking ~4% of CPU, so I can likely rachet up the maximum group-ping frequency to 5 minutes or so and still have acceptable performance. Will need to work ...
Harvest moon over Toronto this evening (Once in a while I glance up from the computer...)
Written by
on
in
Snaking.
Looks as though the problems with the scanner were being precipitated by having too many simultaneous postgresql queries. Introducing more randomness into the scanner has let it run for a few hours at a time so far. Have begun producing a trivial summary/overview in simple text which makes it possible to confirm that the scanner ...
Harvest moon over Toronto this evening (Once in a while I glance up from the computer...)
Written by
on
in
Snaking.
Looks as though the problems with the scanner were being precipitated by having too many simultaneous postgresql queries. Introducing more randomness into the scanner has let it run for a few hours at a time so far. Have begun producing a trivial summary/overview in simple text which makes it possible to confirm that the scanner ...
Looks like PyPgSQL is the culprit (For the crashes, anyway)
Written by
on
in
Snaking.
The annoying crashes during the run of the ping scanner appear to be happening in the middle of a huge chain of PyPgSQL calls, particularly ones that appear to be network related. Going to have to check out twisted.enterprise to see if they had to do something special to make PyPgSQL play nice with Twisted's ...
Think that's enough for today (Dispatcher-based code mostly working)
Written by
on
in
Snaking.
Next step is to hook up the simple SVG diagraming code to generate a real-time graph of current status so I can be sure what I'm seeing really is what it appears to be. I've got the core part of the operations "graph" (sort of a cross between a state diagram and a flow chart) ...
Think that's enough for today (Dispatcher-based code mostly working)
Written by
on
in
Snaking.
Next step is to hook up the simple SVG diagraming code to generate a real-time graph of current status so I can be sure what I'm seeing really is what it appears to be. I've got the core part of the operations "graph" (sort of a cross between a state diagram and a flow chart) ...
OO versus nested_scopes in Twisted code (OO wins (not to spoil the suspense or anything))
Written by
on
in
Snaking.
So, I've been figuratively staving in my skull with tracking down the weird hanging cases that have been showing up in the ping scanning mechanism. For the most part, I've been storing the state in either explicitly passed arguments, or using nested scopes.
Having reached a point where the whole darn thing was just a ...!-->!-->
OO versus nested_scopes in Twisted code (OO wins (not to spoil the suspense or anything))
Written by
on
in
Snaking.
So, I've been figuratively staving in my skull with tracking down the weird hanging cases that have been showing up in the ping scanning mechanism. For the most part, I've been storing the state in either explicitly passed arguments, or using nested scopes.
Having reached a point where the whole darn thing was just a ...!-->!-->