From 0a4e2780972903cb6557e5ca5e08340ef5f37d56 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 27 May 2021 23:53:48 +0000 Subject: [PATCH] --- ayanova/devdocs/todo.txt | 77 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index a8f14f03..b107781e 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -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.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.g__Logged|12_1(ControllerActionInvoker invoker) + at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.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.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.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.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.g__Logged|12_1(ControllerActionInvoker invoker) + at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.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.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) + at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.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