From 9458880c068c985692a49caf608f0057c73790bf Mon Sep 17 00:00:00 2001
From: Mura Li <typeless@users.noreply.github.com>
Date: Sun, 21 Oct 2018 22:09:17 +0800
Subject: [PATCH] Increase the retry limit to 20 times and the interval to
 200ms (#5134)

The original settings has less tolerance and would fail on some
environments.
---
 models/test_fixtures.go | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/models/test_fixtures.go b/models/test_fixtures.go
index 2a70bc9816..8ef9e1af90 100644
--- a/models/test_fixtures.go
+++ b/models/test_fixtures.go
@@ -5,6 +5,9 @@
 package models
 
 import (
+	"fmt"
+	"time"
+
 	"gopkg.in/testfixtures.v2"
 )
 
@@ -21,12 +24,16 @@ func InitFixtures(helper testfixtures.Helper, dir string) (err error) {
 func LoadFixtures() error {
 	var err error
 	// Database transaction conflicts could occur and result in ROLLBACK
-	// As a simple workaround, we just retry 5 times.
-	for i := 0; i < 5; i++ {
+	// As a simple workaround, we just retry 20 times.
+	for i := 0; i < 20; i++ {
 		err = fixtures.Load()
 		if err == nil {
 			break
 		}
+		time.Sleep(200 * time.Millisecond)
+	}
+	if err != nil {
+		fmt.Printf("LoadFixtures failed after retries: %v\n", err)
 	}
 	return err
 }