This commit is contained in:
2021-05-27 23:53:48 +00:00
parent 92665b03e8
commit 0a4e278097

View File

@@ -344,9 +344,84 @@ todo: many biz objects are not using new PUT methodology
CURRENTLY DOING: testing, clean up and refinements
RELEASE TESTING
Very slow to load a workorder off devops, tied to the amount of data on it, less data loads faster, a empty workorder loads almost instantly.
Profiler shows it's at the server, not the transmission or client end
INFO:
It's taking 5 seconds to fetch a 3 item workorder off devops
4.6 seconds of that is processing tmie at the server according to profiler
TRY:
Fetch a bunch of times then look at server metrics both internal and digitalocean and see if any limitations noticed
Look into performance boosting docker postgres, maybe there is something to be done there, is it starved for resources? Slower than bare metal?
Test bare metal if nothing turns up with docker perf?
KEEP IN MIND:
It's a very cheap droplet, if this is the worst case for saving a lot of money then people may just be fuck it I'll live with it, but we would need to know how it fares with multiple users
need automated test to confirm this stuff and be able to fire off lots of traffic at it
technically don't even need a UI for this kind of testing, just keep requesting various workorders as it's not an UI issue anyway.
TODO: ## look over Joyce list for urgent items, then post (make joyce windows build) and test remotely all devices, then back to refinement todo's below and cases
=-=-=-
Keeps refetching nonexistant key "WorkOrderItemTravelPrice"
If look at network traffic can easily see non-existant keys because second opening should not have to fetch anything, sb pre-cached
=-=-=-
Error attempting to generate sample data on devops:
2021-05-27 22:16:14.0936|INFO|AyaNova.Api.Controllers.LicenseController|Erasing Database "AyaNova"
2021-05-27 22:16:16.0189|ERROR|SERVER|Error=>Npgsql.PostgresException (0x80004005): 23503: update or delete on table "ataxcode" violates foreign key constraint "aglobalbizsettings_taxratesaleid_fkey" on table "aglobalbizsettings"
at Npgsql.NpgsqlConnector.<ReadMessage>g__ReadMessageLong|194_0(NpgsqlConnector connector, Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)
at AyaNova.Util.DbUtil.EraseTableAsync(String sTable, NpgsqlConnection conn, Boolean tableHasNoSequence) in C:\data\code\raven\server\AyaNova\util\DbUtil.cs:line 480
at AyaNova.Util.DbUtil.EmptyBizDataFromDatabaseForSeedingOrImportingAsync(ILogger _log) in C:\data\code\raven\server\AyaNova\util\DbUtil.cs:line 456
at AyaNova.Api.Controllers.LicenseController.RemoveAllData(String acceptCode) in C:\data\code\raven\server\AyaNova\Controllers\LicenseController.cs:line 268
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
Exception data:
Severity: ERROR
SqlState: 23503
MessageText: update or delete on table "ataxcode" violates foreign key constraint "aglobalbizsettings_taxratesaleid_fkey" on table "aglobalbizsettings"
Detail: Detail redacted as it may contain sensitive data. Specify 'Include Error Detail' in the connection string to include this information.
SchemaName: public
TableName: aglobalbizsettings
ConstraintName: aglobalbizsettings_taxratesaleid_fkey
File: ri_triggers.c
Line: 2478
Routine: ri_ReportViolation
2021-05-27 22:26:43.4119|INFO|BOOT|AYANOVA
=-=-=-=-=-
ERROR attempting to delete a workorder item that was generated and has a lot of data:
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
2021-05-27 23:29:13.8477|ERROR|SERVER|Error=>System.InvalidCastException: Column 'purchaseorderitemid' is null.
at Npgsql.ThrowHelper.ThrowInvalidCastException_NoValue(FieldDescription field)
at Npgsql.NpgsqlDataReader.GetFieldValue[T](Int32 ordinal)
at lambda_method7490(Closure , QueryContext , DbDataReader , ResultContext , SingleQueryResultCoordinator )
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
at AyaNova.Biz.WorkOrderBiz.PartRequestGetAsync(Int64 id, Boolean logTheGetEvent) in C:\data\code\raven\server\AyaNova\biz\WorkOrderBiz.cs:line 3540
at AyaNova.Biz.WorkOrderBiz.PartRequestDeleteAsync(Int64 id, IDbContextTransaction parentTransaction) in C:\data\code\raven\server\AyaNova\biz\WorkOrderBiz.cs:line 3595
at AyaNova.Biz.WorkOrderBiz.ItemDeleteAsync(Int64 id, IDbContextTransaction parentTransaction) in C:\data\code\raven\server\AyaNova\biz\WorkOrderBiz.cs:line 1313
at AyaNova.Api.Controllers.WorkOrderController.DeleteWorkOrderItem(Int64 WorkOrderItemId) in C:\data\code\raven\server\AyaNova\Controllers\WorkOrderController.cs:line 418
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
OTHER TODOs
todo: seeder stock data / translations: loanunit "Units" have extraneous "rate" in them, i.e. "Hourly rate", sb just "Hourly"
todo: LoanUnit edit form add "*Cost" fields to UI
todo: part request