This commit is contained in:
@@ -291,18 +291,18 @@ TESTING INFO:
|
||||
windev release run did 1000 recs in under 4 minutes, I think 3:40 or something
|
||||
'' 1800 recs 1:38 to query and XX total to final render (timed out after 5:43 still churning away)
|
||||
|
||||
WHAT IS THE MAXIMUM wo can print at each gb before swapping occurs and how long does it take
|
||||
Basic - Premium AMD Shared CPU 1 vCPU 1 GB 25 GB 1 TB $6/mo
|
||||
250wo dispatch report, 33s <---this is it, the max, 275 times out forever
|
||||
Basic - Premium AMD Shared CPU 1 vCPU 2 GB 25 GB 2 TB $12/mo
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DO I HAVE A SWAP FILE AT ALL?? ON DO DROPLETS?
|
||||
no - https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-20-04
|
||||
|
||||
|
||||
- 1 todo: add the caching technique to *all* the other getreportdata methods as was done with workorder
|
||||
|
||||
- 1 todo: check reporting code, is caching being freed before report generation starts?
|
||||
also is report getting multiple copies of data??
|
||||
|
||||
|
||||
|
||||
@@ -319,6 +319,10 @@ TESTING INFO:
|
||||
|
||||
|
||||
|
||||
- 1 bugbug: SERIOUS BUG when testing reporting load test, one time selected a few specific wo from list to confirm it could still report properly after fail due to oom
|
||||
then filtered for less recs and reran report and got selected ones only even though not selected
|
||||
appears in some circs is selection not resetting in data table or in printing code??
|
||||
|
||||
- 1 todo: figure out why a wait display in clien tpage (printing for eg) causes the browser to go wild using up cpu cycles, like WTF is that about
|
||||
animation, graphics, ???
|
||||
Maybe I need to forego that for something more efficient to show waiting like a non animated or simpler thing
|
||||
@@ -509,12 +513,68 @@ todo: 1 When there is a rendering issue with chromium browser startup the server
|
||||
todo: 1 ExportController, right now is passing guid.empty to get export data so there is no job, needs to be jobified like reports so fix this up at front and back stealing from reporting code
|
||||
|
||||
|
||||
|
||||
|
||||
todo: Look into this error, was doing report rendering testing heavily on server to see what limits are and it unexpected returned a timeout error, log shows this:
|
||||
2021-12-28 14:50:10.0396|INFO|SERVER|Boot complete - server open
|
||||
2021-12-28 15:07:10.2402|ERROR|Microsoft.EntityFrameworkCore.Database.Connection|An error occurred using the connection to database 'AyaNova' on server ''.
|
||||
2021-12-28 15:07:31.1867|WARN|Microsoft.AspNetCore.Server.Kestrel|As of "12/28/2021 23:07:20 +00:00", the heartbeat has been running for "00:00:01.3469381" which is longer than "00:00:01". This could be caused by thread pool starvation.
|
||||
2021-12-28 15:08:03.8852|ERROR|Microsoft.EntityFrameworkCore.Database.Connection|An error occurred using the connection to database 'AyaNova' on server ''.
|
||||
2021-12-28 15:08:04.5886|ERROR|Microsoft.AspNetCore.Server.Kestrel|Connection id "0HMEAAI3HFDU4", Request id "0HMEAAI3HFDU4:00000002": An unhandled exception was thrown by the application.=>System.InvalidOperationException: An exception has been raised that is likely due to a transient failure.
|
||||
---> System.TimeoutException: The operation has timed out.
|
||||
at Npgsql.Util.NpgsqlTimeout.CheckAndGetTimeLeft()
|
||||
at Npgsql.Util.NpgsqlTimeout.CheckAndApply(NpgsqlConnector connector)
|
||||
at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|193_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
|
||||
at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
|
||||
at Npgsql.ConnectorPool.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
|
||||
at Npgsql.ConnectorPool.<Get>g__RentAsync|27_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
|
||||
at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|45_0(Boolean async, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected)
|
||||
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
|
||||
at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
|
||||
--- End of inner exception stack trace ---
|
||||
at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
|
||||
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
|
||||
at AyaNova.Startup.<>c.<<Configure>b__5_0>d.MoveNext() in C:\data\code\raven\server\AyaNova\Startup.cs:line 464
|
||||
--- End of stack trace from previous location ---
|
||||
at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
|
||||
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
|
||||
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
|
||||
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
|
||||
2021-12-28 15:09:00.3121|ERROR|JobsBiz|Server::ProcessJobsAsync unexpected error during processing=>System.InvalidOperationException: An exception has been raised that is likely due to a transient failure.
|
||||
---> System.TimeoutException: The operation has timed out.
|
||||
at Npgsql.Util.NpgsqlTimeout.CheckAndGetTimeLeft()
|
||||
at Npgsql.Util.NpgsqlTimeout.CheckAndApply(NpgsqlConnector connector)
|
||||
at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|193_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
|
||||
at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
|
||||
at Npgsql.ConnectorPool.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
|
||||
at Npgsql.ConnectorPool.<Get>g__RentAsync|27_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
|
||||
at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|45_0(Boolean async, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected)
|
||||
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
|
||||
at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
|
||||
--- End of inner exception stack trace ---
|
||||
at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
|
||||
at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
|
||||
at AyaNova.Biz.JobsBiz.GetReadyJobsAsync(Boolean exclusiveOnly) in C:\data\code\raven\server\AyaNova\biz\JobsBiz.cs:line 58
|
||||
at AyaNova.Biz.JobsBiz.GetReadyJobsExclusiveOnlyAsync() in C:\data\code\raven\server\AyaNova\biz\JobsBiz.cs:line 30
|
||||
at AyaNova.Biz.JobsBiz.ProcessJobsAsync() in C:\data\code\raven\server\AyaNova\biz\JobsBiz.cs:line 247
|
||||
|
||||
todo: 2 Log levels are all over the place at the server
|
||||
After attempting to diagnose an issue I'm leaning towards save trace for when need to see sql and put all other shit above trace completely
|
||||
the sql kind of eats up all the space, however I guess that's useful, but it's so huge it's concerning and hard to deal with
|
||||
needs a ponder and decide what is best for tech support purposes
|
||||
|
||||
|
||||
todo: 2 add an ops notification on server boot
|
||||
this way can catch if the server is rebooting regularly in linux or iis when the processmanager restarts it
|
||||
|
||||
|
||||
Reference in New Issue
Block a user