The longer it takes to fix a bug, the smaller the fix will be.
When I first read this little gem of wisdom on DadHacker, I literally laughed out loud. It was the same month that we finally resolved the once-infamous fd.o bug #13405.
#13405 was filed against xf86-video-radeonhd towards the end of November, 2007. xf86-video-ati has a counterpart as bug #19215, but filed almost a year later. Despite a handful of very bright core developers and a few dedicated newbies (including yours truly) looking very closely at the problem, the fix was not to be committed until early May of 2009.
That’s over seventeen months.
To be fair, I don’t think there were any serious attempts at actually resolving the bug until I came along a year after its initial filing, eager to prove to the open source world that I have what it takes. Even accounting for that, however, this was a process that took roughly five months.
In that time, a couple other commits fixing cursor corruption were made, but they turned out to be additional bugs that were only affecting certain hardware. While both happened under equally peculiar circumstances, the original bug remained unresolved, despite multiple pairs of eyes and man hour investment in the double digits.
Finally, in the first week of May, 2009, the ever-awesome Alex Deucher made commit da58e351 to xf86-video-ati, which I promptly ported to radeonhd, finally closing a year-and-a-half old bug.
So, what was the problem that plagued us for so long?
- RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_CONTROL, 0);
+ RHDRegWrite(Cursor, Cursor->RegOffset + D1CUR_CONTROL, 0x00000200);
Laugh out loud, indeed.