Skip to content

Commit 1aafb56

Browse files
committed
Avoid starting graceful for migrate commands and checkout
1 parent db022dd commit 1aafb56

File tree

11 files changed

+24
-20
lines changed

11 files changed

+24
-20
lines changed

cmd/migrate.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
package cmd
66

77
import (
8+
"context"
9+
810
"code.gitea.io/gitea/models"
911
"code.gitea.io/gitea/models/migrations"
1012
"code.gitea.io/gitea/modules/log"
@@ -32,7 +34,7 @@ func runMigrate(ctx *cli.Context) error {
3234
log.Trace("Log path: %s", setting.LogRootPath)
3335
setting.InitDBConfig()
3436

35-
if err := models.NewEngine(migrations.Migrate); err != nil {
37+
if err := models.NewEngine(context.Background(), migrations.Migrate); err != nil {
3638
log.Fatal("Failed to initialize ORM engine: %v", err)
3739
return err
3840
}

cmd/web.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ func runWeb(ctx *cli.Context) error {
113113
}
114114

115115
// Perform global initialization
116-
routers.GlobalInit()
116+
routers.GlobalInit(graceful.GetManager().HammerContext())
117117

118118
// Set up Macaron
119119
m := routes.NewMacaron()

contrib/pr/checkout.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Checkout a PR and load the tests data into sqlite database
55
*/
66

77
import (
8+
"context"
89
"flag"
910
"fmt"
1011
"io/ioutil"
@@ -92,7 +93,7 @@ func runPR() {
9293
//x, err = xorm.NewEngine("sqlite3", "file::memory:?cache=shared")
9394

9495
var helper testfixtures.Helper = &testfixtures.SQLite{}
95-
models.NewEngine(func(_ *xorm.Engine) error {
96+
models.NewEngine(context.Background(), func(_ *xorm.Engine) error {
9697
return nil
9798
})
9899
models.HasEngine = true

integrations/integration_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ func initIntegrationTest() {
176176
}
177177
defer db.Close()
178178
}
179-
routers.GlobalInit()
179+
routers.GlobalInit(graceful.GetManager().HammerContext())
180180
}
181181

182182
func prepareTestEnv(t testing.TB, skip ...int) func() {

integrations/migration-test/migration_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package migrations
66

77
import (
88
"compress/gzip"
9+
"context"
910
"database/sql"
1011
"fmt"
1112
"io/ioutil"
@@ -220,7 +221,7 @@ func doMigrationTest(t *testing.T, version string) {
220221
err := models.SetEngine()
221222
assert.NoError(t, err)
222223

223-
err = models.NewEngine(wrappedMigrate)
224+
err = models.NewEngine(context.Background(), wrappedMigrate)
224225
assert.NoError(t, err)
225226
currentEngine.Close()
226227
}

models/models.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
package models
77

88
import (
9+
"context"
910
"database/sql"
1011
"errors"
1112
"fmt"
1213

13-
"code.gitea.io/gitea/modules/graceful"
1414
"code.gitea.io/gitea/modules/setting"
1515

1616
// Needed for the MySQL driver
@@ -165,12 +165,12 @@ func SetEngine() (err error) {
165165
}
166166

167167
// NewEngine initializes a new xorm.Engine
168-
func NewEngine(migrateFunc func(*xorm.Engine) error) (err error) {
168+
func NewEngine(ctx context.Context, migrateFunc func(*xorm.Engine) error) (err error) {
169169
if err = SetEngine(); err != nil {
170170
return err
171171
}
172172

173-
x.SetDefaultContext(graceful.GetManager().HammerContext())
173+
x.SetDefaultContext(ctx)
174174

175175
if err = x.Ping(); err != nil {
176176
return err

modules/git/git.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ func SetExecutablePath(path string) error {
106106
}
107107

108108
// Init initializes git module
109-
func Init() error {
109+
func Init(ctx context.Context) error {
110+
DefaultContext = ctx
110111
// Git requires setting user.name and user.email in order to commit changes.
111112
for configKey, defaultValue := range map[string]string{"user.name": "Gitea", "user.email": "[email protected]"} {
112113
if stdout, stderr, err := process.GetManager().Exec("git.Init(get setting)", GitExecutable, "config", "--get", configKey); err != nil || strings.TrimSpace(stdout) == "" {

modules/git/git_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package git
66

77
import (
8+
"context"
89
"fmt"
910
"os"
1011
"testing"
@@ -16,7 +17,7 @@ func fatalTestError(fmtStr string, args ...interface{}) {
1617
}
1718

1819
func TestMain(m *testing.M) {
19-
if err := Init(); err != nil {
20+
if err := Init(context.Background()); err != nil {
2021
fatalTestError("Init failed: %v", err)
2122
}
2223

modules/graceful/manager.go

-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"sync"
1010
"time"
1111

12-
"code.gitea.io/gitea/modules/git"
1312
"code.gitea.io/gitea/modules/log"
1413
"code.gitea.io/gitea/modules/process"
1514
"code.gitea.io/gitea/modules/setting"
@@ -50,9 +49,6 @@ func InitManager(ctx context.Context) {
5049
initOnce.Do(func() {
5150
manager = newGracefulManager(ctx)
5251

53-
// Set the git default context to the HammerContext
54-
git.DefaultContext = manager.HammerContext()
55-
5652
// Set the process default context to the HammerContext
5753
process.DefaultContext = manager.HammerContext()
5854
})

routers/init.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package routers
66

77
import (
8+
"context"
89
"strings"
910
"time"
1011

@@ -53,11 +54,11 @@ func NewServices() {
5354
}
5455

5556
// In case of problems connecting to DB, retry connection. Eg, PGSQL in Docker Container on Synology
56-
func initDBEngine() (err error) {
57+
func initDBEngine(ctx context.Context) (err error) {
5758
log.Info("Beginning ORM engine initialization.")
5859
for i := 0; i < setting.Database.DBConnectRetries; i++ {
5960
log.Info("ORM engine initialization attempt #%d/%d...", i+1, setting.Database.DBConnectRetries)
60-
if err = models.NewEngine(migrations.Migrate); err == nil {
61+
if err = models.NewEngine(ctx, migrations.Migrate); err == nil {
6162
break
6263
} else if i == setting.Database.DBConnectRetries-1 {
6364
return err
@@ -71,9 +72,9 @@ func initDBEngine() (err error) {
7172
}
7273

7374
// GlobalInit is for global configuration reload-able.
74-
func GlobalInit() {
75+
func GlobalInit(ctx context.Context) {
7576
setting.NewContext()
76-
if err := git.Init(); err != nil {
77+
if err := git.Init(ctx); err != nil {
7778
log.Fatal("Git module init failed: %v", err)
7879
}
7980
setting.CheckLFSVersion()
@@ -88,7 +89,7 @@ func GlobalInit() {
8889
highlight.NewContext()
8990
external.RegisterParsers()
9091
markup.Init()
91-
if err := initDBEngine(); err == nil {
92+
if err := initDBEngine(ctx); err == nil {
9293
log.Info("ORM engine initialization successful!")
9394
} else {
9495
log.Fatal("ORM engine initialization failed: %v", err)

routers/install.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"code.gitea.io/gitea/modules/base"
1717
"code.gitea.io/gitea/modules/context"
1818
"code.gitea.io/gitea/modules/generate"
19+
"code.gitea.io/gitea/modules/graceful"
1920
"code.gitea.io/gitea/modules/log"
2021
"code.gitea.io/gitea/modules/setting"
2122
"code.gitea.io/gitea/modules/user"
@@ -351,7 +352,7 @@ func InstallPost(ctx *context.Context, form auth.InstallForm) {
351352
return
352353
}
353354

354-
GlobalInit()
355+
GlobalInit(graceful.GetManager().HammerContext())
355356

356357
// Create admin account
357358
if len(form.AdminName) > 0 {

0 commit comments

Comments
 (0)