mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-05-25 11:22:16 +00:00
Ensure that sessions are passed into queries that could use the database to prevent deadlocks (#5718)
* Fixed deadlock in CreateComment * Fix possible deadlock in UpdateIssueDeadline from createDeadlineComment * Ensure that calls to IsTimeTracker enabled are called within session Signed-off-by: Andrew Thornton <art27@cantab.net> * Ensure that calls to reactionList are also called within session Signed-off-by: Andrew Thornton <art27@cantab.net> * Ensure all calls in NewPullRequest with the session are called within the session Signed-off-by: Andrew Thornton <art27@cantab.net> * Deal with potential deadlocks in repo Signed-off-by: Andrew Thornton <art27@cantab.net> * Ensure that isStaring is checked within our transaction Signed-off-by: Andrew Thornton <art27@cantab.net> * Fix mistake in isOrganizationMember Sorry.
This commit is contained in:
parent
656456441c
commit
6868378673
6 changed files with 42 additions and 22 deletions
|
@ -21,7 +21,7 @@ func StarRepo(userID, repoID int64, star bool) error {
|
|||
}
|
||||
|
||||
if star {
|
||||
if IsStaring(userID, repoID) {
|
||||
if isStaring(sess, userID, repoID) {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -35,7 +35,7 @@ func StarRepo(userID, repoID int64, star bool) error {
|
|||
return err
|
||||
}
|
||||
} else {
|
||||
if !IsStaring(userID, repoID) {
|
||||
if !isStaring(sess, userID, repoID) {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -55,7 +55,11 @@ func StarRepo(userID, repoID int64, star bool) error {
|
|||
|
||||
// IsStaring checks if user has starred given repository.
|
||||
func IsStaring(userID, repoID int64) bool {
|
||||
has, _ := x.Get(&Star{0, userID, repoID})
|
||||
return isStaring(x, userID, repoID)
|
||||
}
|
||||
|
||||
func isStaring(e Engine, userID, repoID int64) bool {
|
||||
has, _ := e.Get(&Star{0, userID, repoID})
|
||||
return has
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue