-
-
Notifications
You must be signed in to change notification settings - Fork 6.5k
Description
Description
For teams that have a configured LDAP sync, the team members count can be negative.
We use Server SQL DB. Table [dbo].[team] shows negative number in column [num_members]
Logs show that it is trying to delete and readd a user that should not be deleted:
10:32:59 services/org/team.go:350:syncGroupsToTeamsCached.RemoveTeamMember.1() [W] [Slow SQL Query] DELETE FROM [team_user] WHERE [org_id]=? AND [team_id]=? AND [uid]=? [33 20 19] - 5.0488183s
10:33:07 models/db/context.go:149:WithTx() [W] [Slow SQL Query] UPDATE [team] SET [num_members] = [num_members] + ? FROM [team] WHERE [id]=? [1 20] - 7.4509668s
10:33:07 models/db/context.go:177:Insert() [W] [Slow SQL Query] INSERT INTO [team_user] ([org_id],[team_id],[uid]) OUTPUT Inserted.[id] VALUES (?,?,?) [33 20 19] - 7.471007s
2026/03/13 10:33:07 .../source_group_sync.go:104:syncGroupsToTeamsCached() [E] group sync: Could not add user to team: mssql: Eine Zeile mit doppeltem Schlüssel kann in das dbo.team_user-Objekt mit dem eindeutigen UQE_team_user_s-Index nicht eingefügt werden. Der doppelte Schlüsselwert ist (20, 19).
2026/03/13 10:33:07 services/auth/basic.go:136:(*Basic).Verify() [E] UserSignIn: could not sync[add] user groups: mssql: Eine Zeile mit doppeltem Schlüssel kann in das dbo.team_user-Objekt mit dem eindeutigen UQE_team_user_s-Index nicht eingefügt werden. Der doppelte Schlüsselwert ist (20, 19).
2026/03/13 10:33:07 routers/web/web.go:121:Routes.webAuth.10() [E] Failed to verify user: could not sync[add] user groups: mssql: Eine Zeile mit doppeltem Schlüssel kann in das dbo.team_user-Objekt mit dem eindeutigen UQE_team_user_s-Index nicht eingefügt werden. Der doppelte Schlüsselwert ist (20, 19).
Later it logs a deadlock:
10:33:04 services/auth/basic.go:136:(*Basic).Verify() [E] UserSignIn: could not sync[remove] user groups: mssql: Die Transaktion (Prozess-ID 51) befand sich auf Sperre Ressourcen aufgrund eines anderen Prozesses in einer Deadlocksituation und wurde als Deadlockopfer ausgewählt. Führen Sie die Transaktion erneut aus.
10:33:04 routers/web/web.go:121:Routes.webAuth.10() [E] Failed to verify user: could not sync[remove] user groups: mssql: Die Transaktion (Prozess-ID 51) befand sich auf Sperre Ressourcen aufgrund eines anderen Prozesses in einer Deadlocksituation und wurde als Deadlockopfer ausgewählt. Führen Sie die Transaktion erneut aus.
10:33:07 .../source_group_sync.go:109:syncGroupsToTeamsCached() [E] group sync: Could not remove user from team: mssql: Die Transaktion (Prozess-ID 55) befand sich auf Sperre Ressourcen aufgrund eines anderen Prozesses in einer Deadlocksituation und wurde als Deadlockopfer ausgewählt. Führen Sie die Transaktion erneut aus.
10:33:07 services/auth/basic.go:136:(*Basic).Verify() [E] UserSignIn: could not sync[remove] user groups: mssql: Die Transaktion (Prozess-ID 55) befand sich auf Sperre Ressourcen aufgrund eines anderen Prozesses in einer Deadlocksituation und wurde als Deadlockopfer ausgewählt. Führen Sie die Transaktion erneut aus.
10:33:07 routers/web/web.go:121:Routes.webAuth.10() [E] Failed to verify user: could not sync[remove] user groups: mssql: Die Transaktion (Prozess-ID 55) befand sich auf Sperre Ressourcen aufgrund eines anderen Prozesses in einer Deadlocksituation und wurde als Deadlockopfer ausgewählt. Führen Sie die Transaktion erneut aus.
10:46:51 .../source_group_sync.go:109:syncGroupsToTeamsCached() [E] group sync: Could not remove user from team: mssql: Die Transaktion (Prozess-ID 67) befand sich auf Sperre Ressourcen aufgrund eines anderen Prozesses in einer Deadlocksituation und wurde als Deadlockopfer ausgewählt. Führen Sie die Transaktion erneut aus.
10:46:51 services/auth/basic.go:136:(*Basic).Verify() [E] UserSignIn: could not sync[remove] user groups: mssql: Die Transaktion (Prozess-ID 67) befand sich auf Sperre Ressourcen aufgrund eines anderen Prozesses in einer Deadlocksituation und wurde als Deadlockopfer ausgewählt. Führen Sie die Transaktion erneut aus.
10:46:51 routers/web/web.go:121:Routes.webAuth.10() [E] Failed to verify user: could not sync[remove] user groups: mssql: Die Transaktion (Prozess-ID 67) befand sich auf Sperre Ressourcen aufgrund eines anderen Prozesses in einer Deadlocksituation und wurde als Deadlockopfer ausgewählt. Führen Sie die Transaktion erneut aus.
Gitea Version
1.25.4
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
Git Version
2.52.0.windows.1
Operating System
Windows
How are you running Gitea?
Running Gitea as a windows service
Database
MSSQL