Today's WTF
Toby Corkindale
tjc at wintrmute.net
Thu Nov 15 01:32:08 GMT 2007
My current job is providing me with plenty of WTF moments, but I just had to
share this particular one.
There's a script. It does some work, but it doesn't want to start doing a batch
until there's a certain amount of entries in the DB. I don't see any good
reason for it to wait, but that's not important right now.
The script does this:
my $rowsReturned = 0;
my $rowsToCollect = a_big_number;
while ($rowsReturned != $RowsToCollect) {
# SELECT * FROM abigtable order by aField limit $rowsToCollect
# goes into $query
$rowsReturned = $query->rows;
sleep(1) unless $rowsReturned == $rowsToCollect;
}
There are two problems here.
1) your DBA is going to hunt you down and put an icepick through your head.
2) if the DB updates fast enough, $rowsReturned may jump more than one row per
iteration, and once $rowsReturned is > $rowsToCollect, the LOOP NEVER ENDS. In
which case it won't just be the DBA after your head.
W.T.F.
This code has been live for 2.5 years.
-Toby
More information about the london.pm
mailing list