In Redis weekly update #1 – Hashes and… many more! Salvatore Sanfilippo (the author of Redis) describes the last week’s worth of changes to Redis. The last item is about a bug I found when setting up cross-datacenter Redis replication at Craigslist. He describes the bug and the fix quite well, concluding with:
I’m so happy because of this stories, involving five people willing to share their work for free, to push their knowledge forward. This are a few of the best traits of humanity itself. There is really something good about open source, and I’m honored to collaborate with such great guys.
I have to say, this is exactly how Open Source is supposed to work. He makes the source code available (and easily forkable on github) and actively participates on the #redis channel of the Freenode IRC network. So even though I’m in California and he’s in Italy, we were able to communicate via email, the project’s issue tracking system (via Google Code), IRC, and a github pull request.
As he notes, it took a bit of time to find this bug, but the discussions we had on-line helped both of us to focus our search. It was ultimately a single error message in one of the non-failed servers that caught my attention and focused in on the problem he describes in his post.
I can’t imagine what it’d have been like to track this down without source code and communicating with the customer service organization of a larger software vendor.
This morning I patched our code, deployed the fix, and tested it. So far, so good. I expect that when Redis 1.2.6 is released in a day or two, we can be assure that nobody else will hit this bug.