The gravity of this bug is compounded by a recent regression in the order of pulling branches.
Previously, branches whose mirroring had started but completed (because of an unhandled exception or because the script was killed) on a previous run, were processed last. So branches that caused reproducible unhandled errors would not block other branches from being processed.
Now, a branch that caused an unhandled error on the previous run is processed first on the next run. If the error is reproducible, that effectively brings the service to a halt.
I suspect the regression was introduced in RF 4777, when fixing bug 74031.
The gravity of this bug is compounded by a recent regression in the order of pulling branches.
Previously, branches whose mirroring had started but completed (because of an unhandled exception or because the script was killed) on a previous run, were processed last. So branches that caused reproducible unhandled errors would not block other branches from being processed.
Now, a branch that caused an unhandled error on the previous run is processed first on the next run. If the error is reproducible, that effectively brings the service to a halt.
I suspect the regression was introduced in RF 4777, when fixing bug 74031.