Debugging Stuck Threads in Multi-Process Python Programs

I’ve been fiddling with the Journal thread in networking-odl lately..
One of the changes cause the unit tests to get but with no idea what’s stuck where I started looking for a good solution.

A very nice project addressing this is pystuck which runs a debugging server in the background and allows you to connect to it to dump the stack trace of the program.

Continue reading


ODL V2 Driver 101: Completing the Picture

This is a multi-post series about the ODL V2 Driver.

Completing the Picture

So we have a journal that’s processing entries a-synchronously and sending them to ODL, the skies are sunny and unicorns are running in the fields.. OK so no unicorns.. Also, there are some issues that come with operating the journal and also some other issues from the V1 driver the journal didn’t address:

  • How do we handle an ODL “cold reboot”?
  • What to do with stale journal locks?
  • What to do with completed entries?
  • What to do with failed entries?
  • What to do when the systems just get out of sync?

To address most of these questions we introduced a mechanism called the “Maintenance Thread”.
Let me explain about this solution and what operations it performs.

Continue reading

ODL V2 Driver 101: V2 Arhitecture

This is a multi-post series about the ODL V2 Driver.

V2 Driver Architecture

The V2 driver was designed to solve the issues identified in the V1 driver, while being scalable and performant. While the write up is mainly about the L2 networking bits, the architecture is general and is used for any and all communication between Neutron and ODL (i.e. L2, L3, FWASS, QoS, Trunk Ports, etc).

At a high level, the architecture looks like this:

Continue reading

ODL V2 Driver 101: V1 Driver Explained

As I’ve recently been working intensively on the OepnStack Neutron’s ODL V2 driver, I feel it’s a good idea to share my insights and knowledge about it to the benefit of the world.

This is a multi-post series as it’s easier to write & read than a single blob of blog..

ODL Driver V1

So before even explaining about V2 it makes sense to understand what’s the V1 Driver, what are it’s problems.

Continue reading

Welcome to KISS’n’DRY

Hello World,

I’m Mike and I write code, sometimes..

I also write blog posts, even less frequently..

However, when I do write something I at least find it important and/or entertaining so I hope you’ll find some benefit from it.


P.S I have another blog but I feel the new blog is more fitting for the stuff I want to write about.