Merge pull request #2212 from salmanisd/feature/use-only-one-sqlite3-conn

storage/sql: use only one sqlite3 connection
This commit is contained in:
Maksim Nabokikh 2021-07-22 20:10:31 +04:00 committed by GitHub
commit e650aef331
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -32,12 +32,10 @@ func (s *SQLite3) open(logger log.Logger) (*conn, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
if s.File == ":memory:" {
// sqlite3 uses file locks to coordinate concurrent access. In memory
// doesn't support this, so limit the number of connections to 1.
db.SetMaxOpenConns(1)
}
// always allow only one connection to sqlite3, any other thread/go-routine
// attempting concurrent access will have to wait
db.SetMaxOpenConns(1)
errCheck := func(err error) bool { errCheck := func(err error) bool {
sqlErr, ok := err.(sqlite3.Error) sqlErr, ok := err.(sqlite3.Error)
if !ok { if !ok {