Fix retry accounting off-by-one bug

Ie26fdc29c07430ebfb3df8be8ac1786d63d7e0fe re-implemented the retry logic
for v3, and started at 1, but the checking logic was still in place from
pre-v3 and expected it to count from 0, not 1.

Change-Id: I6e64ef03cbb10ce858b22d6a4590f58ace0a5332
Story: 2000827
Task: 3421
diff --git a/tests/test_scheduler.py b/tests/test_scheduler.py
index b7cf912..233efff 100755
--- a/tests/test_scheduler.py
+++ b/tests/test_scheduler.py
@@ -4552,7 +4552,7 @@
         self.launch_server.release('.*-test*')
         self.waitUntilSettled()
 
-        for x in range(2):
+        for x in range(3):
             self.assertEqual(len(self.builds), 1,
                              'len of builds at x=%d is wrong' % x)
             self.builds[0].requeue = True
@@ -4562,7 +4562,7 @@
         self.launch_server.hold_jobs_in_build = False
         self.launch_server.release()
         self.waitUntilSettled()
-        self.assertEqual(len(self.history), 5)
+        self.assertEqual(len(self.history), 6)
         self.assertEqual(self.countJobResults(self.history, 'SUCCESS'), 2)
         self.assertEqual(A.reported, 1)
         self.assertIn('RETRY_LIMIT', A.messages[0])
diff --git a/zuul/model.py b/zuul/model.py
index 6e0176f..e90142d 100644
--- a/zuul/model.py
+++ b/zuul/model.py
@@ -666,7 +666,7 @@
     def addBuild(self, build):
         self.builds[build.job.name] = build
         if build.job.name not in self.tries:
-            self.tries[build.job.name] = 1
+            self.tries[build.job.name] = 0
         build.build_set = self
 
     def removeBuild(self, build):