Giter Site home page Giter Site logo

Comments (3)

Frenchwolfie avatar Frenchwolfie commented on September 21, 2024

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.

jakejgordon avatar jakejgordon commented on September 21, 2024

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.

Frenchwolfie avatar Frenchwolfie commented on September 21, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.