Skip to content

Instantly share code, notes, and snippets.

@nhusher
Created November 5, 2014 03:34
Show Gist options
  • Save nhusher/dffa70ec8cb8198c4c90 to your computer and use it in GitHub Desktop.
Save nhusher/dffa70ec8cb8198c4c90 to your computer and use it in GitHub Desktop.

Diagnosing a threading problem can be similar to how I imagine Formula 1 engineers must feel when trying to diagnose an engine failure. The engine runs flawlessly for hours and then suddenly, with little or no warning, fails spectacularly, showering following cars with oil and lumps of crankcase.

When the car is dragged back to the workshop, the poor engineers are faced with a pile of wreckage and somehow need to figure out what caused the failure. The problem was probably something tiny—a failed oil-pump bearing or broken valve, but how can they tell what it was from the mess on the bench?

What tends to happen is that they put as much data logging in place as possible and send the driver back out with a new engine. Hopefully the data will contain something informative the next time a failure happens.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment