From df454396a4e13ce00ef52ae4c40f98be10c76d2e Mon Sep 17 00:00:00 2001 From: Cyberboss Date: Tue, 2 Oct 2018 10:21:33 -0400 Subject: [PATCH 1/2] Fixes attempting to attach an already loaded User while test merging --- .../Controllers/RepositoryController.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Tgstation.Server.Host/Controllers/RepositoryController.cs b/src/Tgstation.Server.Host/Controllers/RepositoryController.cs index e4397fb4a5..ee4e9ff7cf 100644 --- a/src/Tgstation.Server.Host/Controllers/RepositoryController.cs +++ b/src/Tgstation.Server.Host/Controllers/RepositoryController.cs @@ -644,11 +644,16 @@ namespace Tgstation.Server.Host.Controllers if (needToApplyRemainingPrs) { - var contextUser = new Models.User + //an invocation of LoadRevisionInformation could have already loaded this user + var contextUser = databaseContext.Users.Local.Where(x => x.Id == AuthenticationContext.User.Id).FirstOrDefault(); + if (contextUser == default) { - Id = AuthenticationContext.User.Id - }; - databaseContext.Users.Attach(contextUser); + contextUser = new Models.User + { + Id = AuthenticationContext.User.Id + }; + databaseContext.Users.Attach(contextUser); + } foreach (var I in model.NewTestMerges) { From 0c9dfaabf2be1e7ae815466142b5d2e7503701ff Mon Sep 17 00:00:00 2001 From: Cyberboss Date: Tue, 2 Oct 2018 10:25:37 -0400 Subject: [PATCH 2/2] Add a trace log when not attaching the current user for test merging --- src/Tgstation.Server.Host/Controllers/RepositoryController.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Tgstation.Server.Host/Controllers/RepositoryController.cs b/src/Tgstation.Server.Host/Controllers/RepositoryController.cs index ee4e9ff7cf..5c82f36345 100644 --- a/src/Tgstation.Server.Host/Controllers/RepositoryController.cs +++ b/src/Tgstation.Server.Host/Controllers/RepositoryController.cs @@ -654,6 +654,8 @@ namespace Tgstation.Server.Host.Controllers }; databaseContext.Users.Attach(contextUser); } + else + Logger.LogTrace("Skipping attaching the user to the database context as it is already loaded!"); foreach (var I in model.NewTestMerges) {