From 050a8af4243d7f5fff0a2f492b9166f4dfdf0ecf Mon Sep 17 00:00:00 2001
From: Lunny Xiao <xiaolunwen@gmail.com>
Date: Fri, 20 Dec 2019 13:39:33 +0800
Subject: [PATCH] Response for context on retry database connection (#9444)

---
 routers/init.go | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/routers/init.go b/routers/init.go
index 01df15d6c5..ee74ef7970 100644
--- a/routers/init.go
+++ b/routers/init.go
@@ -6,6 +6,7 @@ package routers
 
 import (
 	"context"
+	"fmt"
 	"strings"
 	"time"
 
@@ -57,6 +58,11 @@ func NewServices() {
 func initDBEngine(ctx context.Context) (err error) {
 	log.Info("Beginning ORM engine initialization.")
 	for i := 0; i < setting.Database.DBConnectRetries; i++ {
+		select {
+		case <-ctx.Done():
+			return fmt.Errorf("Aborted due to shutdown:\nin retry ORM engine initialization")
+		default:
+		}
 		log.Info("ORM engine initialization attempt #%d/%d...", i+1, setting.Database.DBConnectRetries)
 		if err = models.NewEngine(ctx, migrations.Migrate); err == nil {
 			break