Skip to content

Commit 707a0a2

Browse files
authored
fix: resolve deadlock when fetching everyone group for in-memory db (#9277)
1 parent e845dea commit 707a0a2

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

coderd/database/dbfake/dbfake.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,7 @@ func uniqueSortedUUIDs(uuids []uuid.UUID) []uuid.UUID {
626626
return unique
627627
}
628628

629-
func (q *FakeQuerier) getOrganizationMember(orgID uuid.UUID) []database.OrganizationMember {
629+
func (q *FakeQuerier) getOrganizationMemberNoLock(orgID uuid.UUID) []database.OrganizationMember {
630630
var members []database.OrganizationMember
631631
for _, member := range q.organizationMembers {
632632
if member.OrganizationID == orgID {
@@ -637,14 +637,14 @@ func (q *FakeQuerier) getOrganizationMember(orgID uuid.UUID) []database.Organiza
637637
return members
638638
}
639639

640-
// getEveryoneGroupMembers fetches all the users in an organization.
641-
func (q *FakeQuerier) getEveryoneGroupMembers(orgID uuid.UUID) []database.User {
640+
// getEveryoneGroupMembersNoLock fetches all the users in an organization.
641+
func (q *FakeQuerier) getEveryoneGroupMembersNoLock(orgID uuid.UUID) []database.User {
642642
var (
643643
everyone []database.User
644-
orgMembers = q.getOrganizationMember(orgID)
644+
orgMembers = q.getOrganizationMemberNoLock(orgID)
645645
)
646646
for _, member := range orgMembers {
647-
user, err := q.GetUserByID(context.TODO(), member.UserID)
647+
user, err := q.getUserByIDNoLock(member.UserID)
648648
if err != nil {
649649
return nil
650650
}
@@ -1434,7 +1434,7 @@ func (q *FakeQuerier) GetGroupMembers(_ context.Context, id uuid.UUID) ([]databa
14341434
defer q.mutex.RUnlock()
14351435

14361436
if q.isEveryoneGroup(id) {
1437-
return q.getEveryoneGroupMembers(id), nil
1437+
return q.getEveryoneGroupMembersNoLock(id), nil
14381438
}
14391439

14401440
var members []database.GroupMember

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy