1
1
mirror of https://github.com/go-gitea/gitea synced 2024-12-25 18:14:28 +00:00

Fix SQLite concurrency problems by using BEGIN IMMEDIATE (#10368) (#10493)

This commit is contained in:
guillep2k 2020-02-26 23:30:57 -03:00 committed by GitHub
parent 7bf5834f2c
commit 93860af542
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 3 deletions

View File

@ -126,7 +126,7 @@ func restoreOldDB(t *testing.T, version string) bool {
err := os.MkdirAll(path.Dir(setting.Database.Path), os.ModePerm) err := os.MkdirAll(path.Dir(setting.Database.Path), os.ModePerm)
assert.NoError(t, err) assert.NoError(t, err)
db, err := sql.Open("sqlite3", fmt.Sprintf("file:%s?cache=shared&mode=rwc&_busy_timeout=%d", setting.Database.Path, setting.Database.Timeout)) db, err := sql.Open("sqlite3", fmt.Sprintf("file:%s?cache=shared&mode=rwc&_busy_timeout=%d&_txlock=immediate", setting.Database.Path, setting.Database.Timeout))
assert.NoError(t, err) assert.NoError(t, err)
defer db.Close() defer db.Close()

View File

@ -84,7 +84,7 @@ func MainTest(m *testing.M, pathToGiteaRoot string) {
func createTestEngine(fixturesDir string) error { func createTestEngine(fixturesDir string) error {
var err error var err error
x, err = xorm.NewEngine("sqlite3", "file::memory:?cache=shared") x, err = xorm.NewEngine("sqlite3", "file::memory:?cache=shared&_txlock=immediate")
if err != nil { if err != nil {
return err return err
} }

View File

@ -124,7 +124,7 @@ func DBConnStr() (string, error) {
if err := os.MkdirAll(path.Dir(Database.Path), os.ModePerm); err != nil { if err := os.MkdirAll(path.Dir(Database.Path), os.ModePerm); err != nil {
return "", fmt.Errorf("Failed to create directories: %v", err) return "", fmt.Errorf("Failed to create directories: %v", err)
} }
connStr = fmt.Sprintf("file:%s?cache=shared&mode=rwc&_busy_timeout=%d", Database.Path, Database.Timeout) connStr = fmt.Sprintf("file:%s?cache=shared&mode=rwc&_busy_timeout=%d&_txlock=immediate", Database.Path, Database.Timeout)
default: default:
return "", fmt.Errorf("Unknown database type: %s", Database.Type) return "", fmt.Errorf("Unknown database type: %s", Database.Type)
} }