Comments (3)
Usually filtering the dates down to the last month get the statistics on screen. Longer than that and it gets the engine churning. Another thing that I'll keep here and not open another issue for : the Filter statistics button alone does not work - I have to click it first AND THEN refresh the page to get the statistics updated (Chrome AND Edge)
from nemestats.
Thanks for reporting. It looks like we're starting to get timeouts on gaming groups with a decent amount of activity. Here is the stack trace for dev purposes:
System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details.
---> System.Data.SqlClient.SqlException: Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
---> System.ComponentModel.Win32Exception: The wait operation timed out
at System.Data.SqlClient.SqlConnection.OnError(System.Data.SqlClient.SqlException exception, System.Boolean breakConnection, System.Action`1 wrapCloseInAction) at offset 94
at System.Data.SqlClient.SqlInternalConnection.OnError(System.Data.SqlClient.SqlException exception, System.Boolean breakConnection, System.Action`1 wrapCloseInAction) at offset 41
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(System.Data.SqlClient.TdsParserStateObject stateObj, System.Boolean callerHasConnectionLock, System.Boolean asyncClose) at offset 380
at System.Data.SqlClient.TdsParser.TryRun(System.Data.SqlClient.RunBehavior runBehavior, System.Data.SqlClient.SqlCommand cmdHandler, System.Data.SqlClient.SqlDataReader dataStream, System.Data.SqlClient.BulkCopySimpleResultSet bulkCopyHandler, System.Data.SqlClient.TdsParserStateObject stateObj, System.Boolean& dataReady) at offset 2670
at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at offset 64
at System.Data.SqlClient.SqlDataReader.get_MetaData() at offset 60
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(System.Data.SqlClient.SqlDataReader ds, System.Data.SqlClient.RunBehavior runBehavior, System.String resetOptionsString, System.Boolean isInternal, System.Boolean forDescribeParameterEncryption, System.Boolean shouldCacheForAlwaysEncrypted) at offset 243
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(System.Data.CommandBehavior cmdBehavior, System.Data.SqlClient.RunBehavior runBehavior, System.Boolean returnStream, System.Boolean async, System.Int32 timeout, System.Threading.Tasks.Task& task, System.Boolean asyncWrite, System.Boolean inRetry, System.Data.SqlClient.SqlDataReader ds, System.Boolean describeParameterEncryptionRequest) at offset 1627
at System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior cmdBehavior, System.Data.SqlClient.RunBehavior runBehavior, System.Boolean returnStream, System.String method, System.Threading.Tasks.TaskCompletionSource`1 completion, System.Int32 timeout, System.Threading.Tasks.Task& task, System.Boolean& usedCache, System.Boolean asyncWrite, System.Boolean inRetry) at offset 632
at System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior cmdBehavior, System.Data.SqlClient.RunBehavior runBehavior, System.Boolean returnStream, System.String method) at offset 0
at System.Data.SqlClient.SqlCommand.ExecuteReader(System.Data.CommandBehavior behavior, System.String method) at offset 103
at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(System.Data.CommandBehavior behavior) at offset 16
at System.Data.Common.DbCommand.ExecuteReader(System.Data.CommandBehavior behavior) at offset 0
at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.<Reader>b__c(System.Data.Common.DbCommand t, System.Data.Entity.Infrastructure.Interception.DbCommandInterceptionContext`1 c) at offset 0
at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](System.Data.Entity.Infrastructure.Interception.TTarget target, System.Func`3 operation, System.Data.Entity.Infrastructure.Interception.TInterceptionContext interceptionContext, System.Action`3 executing, System.Action`3 executed) at offset 15
at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(System.Data.Common.DbCommand command, System.Data.Entity.Infrastructure.Interception.DbCommandInterceptionContext interceptionContext) at offset 114
at System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader(System.Data.CommandBehavior behavior) at offset 59
at System.Data.Common.DbCommand.ExecuteReader(System.Data.CommandBehavior behavior) at offset 0
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(System.Data.Entity.Core.EntityClient.EntityCommand entityCommand, System.Data.CommandBehavior behavior) at offset 10
--- End of inner exception stack trace ---
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(System.Data.Entity.Core.EntityClient.EntityCommand entityCommand, System.Data.CommandBehavior behavior) at offset 40
at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](System.Data.Entity.Core.Objects.ObjectContext context, System.Data.Entity.Core.Objects.ObjectParameterCollection parameterValues) at offset 309
at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__6() at offset 0
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](System.Func`1 func, System.Data.Entity.Infrastructure.IDbExecutionStrategy executionStrategy, System.Boolean startLocalTransaction, System.Boolean releaseConnectionOnSuccess) at offset 138
at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__5() at offset 28
at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](System.Func`1 operation) at offset 54
at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(System.Nullable`1 forMergeOption) at offset 165
at System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0() at offset 0
at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext() at offset 8
at System.Collections.Generic.List`1..ctor(System.Collections.Generic.IEnumerable`1 collection) at offset 119
at System.Linq.Enumerable.ToList[TSource](System.Collections.Generic.IEnumerable`1 source) at offset 14
at BusinessLogic.Logic.Players.PlayerRetriever.GetAllPlayersWithNemesisInfo(System.Int32 gamingGroupId, BusinessLogic.Models.Utility.IDateRangeFilter dateRangeFilter) at offset 32 in C:\Sandbox\jake\NemeStats\Source\BusinessLogic\Logic\Players\PlayerRetriever.cs:line 76:col 13
at UI.Controllers.GamingGroupController.GetGamingGroupPlayers(System.Int32 id, BusinessLogic.Models.User.ApplicationUser currentUser, BusinessLogic.Models.Utility.BasicDateRangeFilter dateRangeFilter) at offset 0 in C:\Sandbox\jake\NemeStats\Source\UI\Controllers\GamingGroupController.cs:line 172:col 13
at lambda_method(System.Runtime.CompilerServices.Closure, System.Web.Mvc.ControllerBase, System.Object[]) at offset -1
at System.Web.Mvc.ActionMethodDispatcher.Execute(System.Web.Mvc.ControllerBase controller, System.Object[] parameters) at offset 0
at System.Web.Mvc.ReflectedActionDescriptor.Execute(System.Web.Mvc.ControllerContext controllerContext, System.Collections.Generic.IDictionary`2 parameters) at offset 81
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ActionDescriptor actionDescriptor, System.Collections.Generic.IDictionary`2 parameters) at offset 0
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(System.IAsyncResult asyncResult, System.Web.Mvc.Async.ActionInvocation innerInvokeState) at offset 0
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(System.IAsyncResult asyncResult) at offset 0
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at offset 41
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(System.IAsyncResult asyncResult) at offset 0
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() at offset 20
at System.Web.Mvc.Async.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() at offset 134
at System.Web.Mvc.Async.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() at offset 134
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(System.IAsyncResult asyncResult) at offset 0
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.CallEndDelegate(System.IAsyncResult asyncResult) at offset 0
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at offset 41
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(System.IAsyncResult asyncResult) at offset 0
at System.Web.Mvc.Async.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() at offset 0
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(System.IAsyncResult asyncResult) at offset 0
I think this is the actual generated SQL (scary!) that made need some tuning:
(@p__linq__0 int,@p__linq__1 datetime2(7),@p__linq__2 datetime2(7),@p__linq__3 datetime2(7),@p__linq__4 datetime2(7))SELECT
[Project6].[Id] AS [Id],
[Project6].[ApplicationUserId] AS [ApplicationUserId],
[Project6].[Name] AS [Name],
[Project6].[Active] AS [Active],
CASE WHEN ( NOT (([Project6].[ApplicationUserId] IS NULL) OR ((LEN([Project6].[ApplicationUserId])) = 0))) THEN cast(1 as bit) WHEN (([Project6].[ApplicationUserId] IS NULL) OR ((LEN([Project6].[ApplicationUserId])) = 0)) THEN cast(0 as bit) END AS [C1],
[Project6].[NemesisPlayerId] AS [NemesisPlayerId],
[Project6].[Name1] AS [Name1],
[Project6].[NemesisPlayerId1] AS [NemesisPlayerId1],
[Project6].[Name2] AS [Name2],
[Project6].[GamingGroupId] AS [GamingGroupId],
[Project6].[C1] AS [C2],
[Project6].[C2] AS [C3],
[Project6].[C3] AS [C4]
FROM ( SELECT
[Project4].[Id] AS [Id],
[Project4].[GamingGroupId] AS [GamingGroupId],
[Project4].[Name] AS [Name],
[Project4].[ApplicationUserId] AS [ApplicationUserId],
[Project4].[Active] AS [Active],
[Project4].[NemesisPlayerId] AS [NemesisPlayerId],
[Project4].[Name1] AS [Name1],
[Project4].[NemesisPlayerId1] AS [NemesisPlayerId1],
[Project4].[Name2] AS [Name2],
[Project4].[C1] AS [C1],
[Project4].[C2] AS [C2],
(SELECT
COUNT(1) AS [A1]
FROM ( SELECT
[Extent10].[Id] AS [Id],
[Extent10].[GameDefinitionId] AS [GameDefinitionId],
[Extent11].[Id] AS [Id1],
[Extent11].[ChampionId] AS [ChampionId]
FROM [dbo].[Champion] AS [Extent10]
INNER JOIN [dbo].[GameDefinition] AS [Extent11] ON ([Extent10].[GameDefinitionId] = [Extent11].[Id]) AND ([Extent11].[ChampionId] = [Extent10].[Id])
WHERE ([Project4].[Id] = [Extent10].[PlayerId]) AND ([Extent11].[ChampionId] IS NOT NULL)
) AS [Project5]) AS [C3]
FROM ( SELECT
[Project2].[Id] AS [Id],
[Project2].[GamingGroupId] AS [GamingGroupId],
[Project2].[Name] AS [Name],
[Project2].[ApplicationUserId] AS [ApplicationUserId],
[Project2].[Active] AS [Active],
[Project2].[NemesisPlayerId] AS [NemesisPlayerId],
[Project2].[Name1] AS [Name1],
[Project2].[NemesisPlayerId1] AS [NemesisPlayerId1],
[Project2].[Name2] AS [Name2],
[Project2].[C1] AS [C1],
(SELECT
COUNT(1) AS [A1]
FROM ( SELECT
[Extent8].[PlayedGameId] AS [PlayedGameId],
[Extent8].[GameRank] AS [GameRank],
[Extent9].[Id] AS [Id],
[Extent9].[DatePlayed] AS [DatePlayed]
FROM [dbo].[PlayerGameResult] AS [Extent8]
INNER JOIN [dbo].[PlayedGame] AS [Extent9] ON [Extent8].[PlayedGameId] = [Extent9].[Id]
WHERE ([Project2].[Id] = [Extent8].[PlayerId]) AND ([Extent9].[DatePlayed] >= @p__linq__3) AND ([Extent9].[DatePlayed] <= @p__linq__4) AND ([Extent8].[GameRank] > 1)
) AS [Project3]) AS [C2]
FROM ( SELECT
[Project1].[Id] AS [Id],
[Project1].[GamingGroupId] AS [GamingGroupId],
[Project1].[Name] AS [Name],
[Project1].[ApplicationUserId] AS [ApplicationUserId],
[Project1].[Active] AS [Active],
[Project1].[NemesisPlayerId] AS [NemesisPlayerId],
[Project1].[Name1] AS [Name1],
[Project1].[NemesisPlayerId1] AS [NemesisPlayerId1],
[Project1].[Name2] AS [Name2],
(SELECT
COUNT(1) AS [A1]
FROM [dbo].[PlayerGameResult] AS [Extent6]
INNER JOIN [dbo].[PlayedGame] AS [Extent7] ON [Extent6].[PlayedGameId] = [Extent7].[Id]
WHERE ([Project1].[Id] = [Extent6].[PlayerId]) AND ([Extent7].[DatePlayed] >= @p__linq__1) AND ([Extent7].[DatePlayed] <= @p__linq__2) AND (1 = [Extent6].[GameRank])) AS [C1]
FROM ( SELECT
[Extent1].[Id] AS [Id],
[Extent1].[GamingGroupId] AS [GamingGroupId],
[Extent1].[Name] AS [Name],
[Extent1].[ApplicationUserId] AS [ApplicationUserId],
[Extent1].[Active] AS [Active],
[Extent2].[NemesisPlayerId] AS [NemesisPlayerId],
[Extent3].[Name] AS [Name1],
[Extent4].[NemesisPlayerId] AS [NemesisPlayerId1],
[Extent5].[Name] AS [Name2]
FROM [dbo].[Player] AS [Extent1]
LEFT OUTER JOIN [dbo].[Nemesis] AS [Extent2] ON [Extent1].[NemesisId] = [Extent2].[Id]
LEFT OUTER JOIN [dbo].[Player] AS [Extent3] ON [Extent2].[NemesisPlayerId] = [Extent3].[Id]
LEFT OUTER JOIN [dbo].[Nemesis] AS [Extent4] ON [Extent1].[PreviousNemesisId] = [Extent4].[Id]
LEFT OUTER JOIN [dbo].[Player] AS [Extent5] ON [Extent4].[NemesisPlayerId] = [Extent5].[Id]
WHERE [Extent1].[GamingGroupId] = @p__linq__0
) AS [Project1]
) AS [Project2]
) AS [Project4]
) AS [Project6]
Will try to get this resolved in the next few days. Thanks for your patience!
from nemestats.
No problem, Jake, there's nothing here that will prevent me from keeping logging my games on Nemestats. It's only that it has to be adressed. I must add that since a few days ago I'm getting a crash at login (The O Crap screen), and then I still can go back to the site correctly logged and proceed to whatever task I have to do.
from nemestats.
Related Issues (20)
- Add team win HOT 2
- Connexion to BGG lost since at least a week : UNABLE to add new games HOT 4
- Unable to delete Gaming Group HOT 1
- Changing password results in 500 response. HOT 1
- Unstable save playedgame HOT 3
- Unable to log in with Google HOT 2
- Test issue from Rollbar
- InvalidOperationException for universal game not included in any group
- Error viewing universal stats when a group has the game but has no plays
- GameDefinitionController throws EntityDoesNotExistException for non-existent game definition HOT 1
- GamingGroupController throws EntityDoesNotExistException for non-existent group
- PlayerController throws EntityDoesNotExistException for non-existent player
- UniversalGameController throws EntityDoesNotExistException for non-existent game
- PlayedGameController throws EntityDoesNotExistException for non-existent played game
- Migrate from Universal Analytics to Google Analytics 4
- Update UI code for Google Analytics 4
- Update server side code for Google Analytics 4
- Prevent robots from crawling some pages to improve performance
- Allow recovery of username
- EntityDoesNotExistException is thrown for achievement link for non-existent player
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nemestats.