From cd5d2ae92b8d1de07361e8a73a6e57d5249d2f2e Mon Sep 17 00:00:00 2001 From: nicktrn <55853254+nicktrn@users.noreply.github.com> Date: Mon, 1 Jul 2024 13:22:35 +0100 Subject: [PATCH] Override completion on OOM crashes --- apps/webapp/app/v3/eventRepository.server.ts | 6 +++++- apps/webapp/app/v3/services/crashTaskRun.server.ts | 9 ++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/apps/webapp/app/v3/eventRepository.server.ts b/apps/webapp/app/v3/eventRepository.server.ts index d89016401..547d9efeb 100644 --- a/apps/webapp/app/v3/eventRepository.server.ts +++ b/apps/webapp/app/v3/eventRepository.server.ts @@ -344,7 +344,7 @@ export class EventRepository { }); } - async queryIncompleteEvents(queryOptions: QueryOptions) { + async queryIncompleteEvents(queryOptions: QueryOptions, allowCompleteDuplicate = false) { // First we will find all the events that match the query options (selecting minimal data). const taskEvents = await this.readReplica.taskEvent.findMany({ where: queryOptions, @@ -362,6 +362,10 @@ export class EventRepository { // If the event is cancelled, it is not incomplete if (event.isCancelled) return false; + if (allowCompleteDuplicate) { + return true; + } + // There must not be another complete event with the same spanId const hasCompleteDuplicate = taskEvents.some( (otherEvent) => diff --git a/apps/webapp/app/v3/services/crashTaskRun.server.ts b/apps/webapp/app/v3/services/crashTaskRun.server.ts index 1a26343fa..91a4a36d6 100644 --- a/apps/webapp/app/v3/services/crashTaskRun.server.ts +++ b/apps/webapp/app/v3/services/crashTaskRun.server.ts @@ -75,9 +75,12 @@ export class CrashTaskRunService extends BaseService { }, }); - const inProgressEvents = await eventRepository.queryIncompleteEvents({ - runId: taskRun.friendlyId, - }); + const inProgressEvents = await eventRepository.queryIncompleteEvents( + { + runId: taskRun.friendlyId, + }, + options?.overrideCompletion + ); logger.debug("Crashing in-progress events", { inProgressEvents: inProgressEvents.map((event) => event.id),