One solution to a lot of the problem is to remove the madness of shelling out to 'mysql' as a sub-process, and use DBD::mysql instead.
We'd probably fix about 20 other bugs, known and unknown, if we did this. And the amount of work we've spent fixing things like mysql timeout bugs has already been more than it would take to just switch to using DBD::mysql like sane programmers do. I assume that the original design was due to some misguidance from a lawyer about GPL following a protocol or something like that :)
One solution to a lot of the problem is to remove the madness of shelling out to 'mysql' as a sub-process, and use DBD::mysql instead.
We'd probably fix about 20 other bugs, known and unknown, if we did this. And the amount of work we've spent fixing things like mysql timeout bugs has already been more than it would take to just switch to using DBD::mysql like sane programmers do. I assume that the original design was due to some misguidance from a lawyer about GPL following a protocol or something like that :)