parallel_emerge: Fix failure couting to ensure correct error reporting

The error counting mechanism only properly worked when there was at least
one retry. This change counts the errors before checking the retry count
to make sure errors are known about at the error reporting point.

BUG=chromium:983714
TEST=manual

Change-Id: I3c6cb9c60d957ef64ec64ea393c7af3a24ae1259
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1702849
Tested-by: Alex Klein <saklein@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Chris McDonald <cjmcdonald@chromium.org>
Commit-Queue: Alex Klein <saklein@chromium.org>
diff --git a/scripts/parallel_emerge.py b/scripts/parallel_emerge.py
index db6945a..0740bca 100644
--- a/scripts/parallel_emerge.py
+++ b/scripts/parallel_emerge.py
@@ -1844,14 +1844,14 @@
       # Complain if necessary.
       if job.retcode != 0:
         # Handle job failure.
-        failed_count = self._failed_count.get(target, 0)
-        if failed_count >= self._max_retries:
+        self._failed_count[target] = self._failed_count.get(target, 0) + 1
+        failed_count = self._failed_count[target]
+        if failed_count > self._max_retries:
           # If this job has failed and can't be retried, give up.
           self._Print("Failed %s. Your build has failed." % details)
         else:
           # Queue up this build to try again after a long while.
           self._retry_queue.append(self._state_map[target])
-          self._failed_count[target] = failed_count + 1
           self._Print("Failed %s, retrying later." % details)
       else:
         self._Print("Completed %s" % details)