This commit is contained in:
2021-12-29 00:42:30 +00:00
parent 5fc3c7bd01
commit 754d0a31b4

View File

@@ -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