This happens if the previous iteration took more than 60 seconds. Then the queue runner may think that builds failed to start properly and unlock them, e.g.
build 5264936 pid 19248 died, unlocking build 5264951 pid 19248 died, unlocking build 5257073 pid 19248 died, unlocking …
I7UELKBVDQOL47ZCBLDOLP3KUEFDNCWUPL4K4IG6FDRVVHOBWQ4QC
MOX7XJ2E3XISXA7V7T4W6GEAGECGWBZ4PYSLTYBVVR4VAKOI33CQC
RWIBJ5L4MDV4XQIQXBB45RBVAK2IAK3IMP37YUX2SHW7YDKDAAXAC
YTESD75ZEM5RKKKQGS22LCJBGLDJIGYDEHRRW4XD7IUPDXLOCWLQC
7YBYT2LQML2PKEO6UO4444AGSASS664UCDXW2YO3ALB7THQHCEBQC
D6YQQQCNJT7RJ4KF5JN76NM5HT4FVROBGSNB26LYPRYVLEG576MAC
ULHEOJO2ZUIUWD3LLPRQ4KNPK3O4IBTTW4XUVGNLNUG6IG7KFDHAC
DQD7JMSUAPXKASPXUDXY4LCE6QCAZSGWNQYTOKNIQE6RRSRP4KGAC
TULPZ62YXEHXUWGBZMLCLYILEXPQS5ADPT22574BIRFU4CZMBSKAC
# Work around sqlite locking timeouts: if the child
# barfed because of a locked DB before updating the
# `locker' field, then `locker' is still set to $$.
# So if after a minute it hasn't been updated,
# unlock the build. !!! need a better fix for those
# locking timeouts.
if ($build->starttime + 60 < time) {
if (!defined $lastTime || $build->starttime < $lastTime - 300) {