Can we work on being constructive? It would be pretty sweet if people started writing post-mortems for crazy bugs they found the way people write them for outages.
What was the process you went through to track down this problem? Were there any interesting tools or processes you employed?
What was the final solution?
What can we (both you and your team and the community as a whole) do in the future to prevent this sort of thing from happening again?
The author claims most Ruby programmers are monkey-patching and causing these problems. That's almost right: they were. But by and large, they know better now, and would happily replace it with better code, if they could just find it and fix it: that's the real problem.
The author could help by, say, logging an issue, or forking and pull requesting a fix. I checked GitHub; his ID, bcoe, doesn't show in the issues, nor in the pull requests of yajl-ruby's GitHub page[2].
I'm not saying he must do this for every problem with every open-source project he happens across, but even one contribution helps more than this steam-venting blog post.
Snarky response: Duh. Test before you deploy.
Monkey patching is a really bad idea for reasons that have been understood for decades. A lot of Ruby folks think that monkey patching is the bee's knees. The result is that a lot of Ruby gems monkey patch things in conflicting ways.
Every other language community that he discussed frowns on monkey patching and doesn't do it to any significant degree. And it means that stuff isn't nearly as fragile.
That being said, any language feature can be abused and misused