Skip to content

Commit 93860af

Browse files
authored
Fix SQLite concurrency problems by using BEGIN IMMEDIATE (#10368) (#10493)
1 parent 7bf5834 commit 93860af

File tree

3 files changed

+3
-3
lines changed

3 files changed

+3
-3
lines changed

integrations/migration-test/migration_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ func restoreOldDB(t *testing.T, version string) bool {
126126
err := os.MkdirAll(path.Dir(setting.Database.Path), os.ModePerm)
127127
assert.NoError(t, err)
128128

129-
db, err := sql.Open("sqlite3", fmt.Sprintf("file:%s?cache=shared&mode=rwc&_busy_timeout=%d", setting.Database.Path, setting.Database.Timeout))
129+
db, err := sql.Open("sqlite3", fmt.Sprintf("file:%s?cache=shared&mode=rwc&_busy_timeout=%d&_txlock=immediate", setting.Database.Path, setting.Database.Timeout))
130130
assert.NoError(t, err)
131131
defer db.Close()
132132

models/unit_tests.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ func MainTest(m *testing.M, pathToGiteaRoot string) {
8484

8585
func createTestEngine(fixturesDir string) error {
8686
var err error
87-
x, err = xorm.NewEngine("sqlite3", "file::memory:?cache=shared")
87+
x, err = xorm.NewEngine("sqlite3", "file::memory:?cache=shared&_txlock=immediate")
8888
if err != nil {
8989
return err
9090
}

modules/setting/database.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ func DBConnStr() (string, error) {
124124
if err := os.MkdirAll(path.Dir(Database.Path), os.ModePerm); err != nil {
125125
return "", fmt.Errorf("Failed to create directories: %v", err)
126126
}
127-
connStr = fmt.Sprintf("file:%s?cache=shared&mode=rwc&_busy_timeout=%d", Database.Path, Database.Timeout)
127+
connStr = fmt.Sprintf("file:%s?cache=shared&mode=rwc&_busy_timeout=%d&_txlock=immediate", Database.Path, Database.Timeout)
128128
default:
129129
return "", fmt.Errorf("Unknown database type: %s", Database.Type)
130130
}

0 commit comments

Comments
 (0)