anchor.diff:          final Job current = list.single;
           if (current.state == JobState.processing &&
               current.lockedUntil == job.lockedUntil) {
  +          final errorCount = current.errorCount + 1;
             current
               ..state = JobState.idle
               ..processingKey = null
  -            ..errorCount = current.errorCount + 1
  +            ..errorCount = errorCount
               ..lastStatus = JobStatus.aborted
  -            ..lockedUntil = null
  +            ..lockedUntil = _extendLock(errorCount)
               ..updatePriority();
             tx.queueMutations(inserts: [current]);
             await tx.commit();
  
positive.code:           ..lastStatus = status
            ..processingKey = null
            ..errorCount = errorCount
            ..lockedUntil =
                new DateTime.now().toUtc().add(extendDuration ?? _extendDuration)
            ..updatePriority();
          tx.queueMutations(inserts: [selected]);
          await tx.commit();
  
negative.code:       final list = await tx.lookup([_db.emptyKey.append(Job, id: id)]);
        final current = list.single as Job;
        if (current != null) {
          final hasNotChanged = current.isLatestStable == isLatestStable &&
              current.packageVersionUpdated == packageVersionUpdated &&
              current.runtimeVersion == versions.runtimeVersion;
          if (hasNotChanged) {
            if (!shouldProcess) {
              // no reason to re-schedule to job
              return;
            } else if (current.errorCount > 0) {
              // prevent untimely re-try of a failed job
              return;
            }
          }
          if (isNewer(
              versions.semanticRuntimeVersion, current.semanticRuntimeVersion)) {
            // a new instance has already updated the Job with new runtimeVersion
            return;
          }
          _logger.info('Updating job: $id');
  