Quellcode durchsuchen

Fix SQLite deadlock when creating user

This avoids reading from the database after a transaction has been
started in CreateUser(), fixing the deadlock that occurred before.

Closes #53
tags/v0.7.0
Matt Baer vor 5 Jahren
Ursprung
Commit
1c58c64c7c
1 geänderte Dateien mit 4 neuen und 4 gelöschten Zeilen
  1. +4
    -4
      database.go

+ 4
- 4
database.go Datei anzeigen

@@ -155,16 +155,16 @@ func (db *datastore) dateSub(l int, unit string) string {
}

func (db *datastore) CreateUser(u *User, collectionTitle string) error {
if db.PostIDExists(u.Username) {
return impart.HTTPError{http.StatusConflict, "Invalid collection name."}
}

// New users get a `users` and `collections` row.
t, err := db.Begin()
if err != nil {
return err
}

if db.PostIDExists(u.Username) {
return impart.HTTPError{http.StatusConflict, "Invalid collection name."}
}

// 1. Add to `users` table
// NOTE: Assumes User's Password is already hashed!
res, err := t.Exec("INSERT INTO users (username, password, email) VALUES (?, ?, ?)", u.Username, u.HashedPass, u.Email)


Laden…
Abbrechen
Speichern