Skip to content

Commit e74e4fb

Browse files
committed
fix rewritekey lock on sqlite
1 parent c2c1ce2 commit e74e4fb

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

models/ssh_key.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,7 @@ func DeletePublicKey(doer *User, id int64) (err error) {
549549
if err = sess.Commit(); err != nil {
550550
return err
551551
}
552+
sess.Close()
552553

553554
return RewriteAllPublicKeys()
554555
}
@@ -557,6 +558,10 @@ func DeletePublicKey(doer *User, id int64) (err error) {
557558
// Note: x.Iterate does not get latest data after insert/delete, so we have to call this function
558559
// outside any session scope independently.
559560
func RewriteAllPublicKeys() error {
561+
return rewriteAllPublicKeys(x)
562+
}
563+
564+
func rewriteAllPublicKeys(e Engine) error {
560565
//Don't rewrite key if internal server
561566
if setting.SSH.StartBuiltinServer || !setting.SSH.CreateAuthorizedKeysFile {
562567
return nil
@@ -583,7 +588,7 @@ func RewriteAllPublicKeys() error {
583588
}
584589
}
585590

586-
err = x.Iterate(new(PublicKey), func(idx int, bean interface{}) (err error) {
591+
err = e.Iterate(new(PublicKey), func(idx int, bean interface{}) (err error) {
587592
_, err = t.WriteString((bean.(*PublicKey)).AuthorizedString())
588593
return err
589594
})

models/user.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,7 @@ func deleteUser(e *xorm.Session, u *User) error {
10261026
if _, err = e.Delete(&PublicKey{OwnerID: u.ID}); err != nil {
10271027
return fmt.Errorf("deletePublicKeys: %v", err)
10281028
}
1029-
RewriteAllPublicKeys()
1029+
rewriteAllPublicKeys(e)
10301030
// ***** END: PublicKey *****
10311031

10321032
// ***** START: GPGPublicKey *****
@@ -1088,6 +1088,7 @@ func DeleteUser(u *User) (err error) {
10881088
if err = sess.Commit(); err != nil {
10891089
return err
10901090
}
1091+
sess.Close()
10911092

10921093
return RewriteAllPublicKeys()
10931094
}

0 commit comments

Comments
 (0)