From edca0319957bc6ec23b475c1c6c2ed61f0550217 Mon Sep 17 00:00:00 2001 From: Dave Marco Date: Fri, 10 Jan 2025 01:26:16 +0000 Subject: [PATCH 1/8] do not iterate over null --- src/services/decoders/ClpIrDecoder.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/services/decoders/ClpIrDecoder.ts b/src/services/decoders/ClpIrDecoder.ts index 305ad740..8087b6b0 100644 --- a/src/services/decoders/ClpIrDecoder.ts +++ b/src/services/decoders/ClpIrDecoder.ts @@ -101,9 +101,13 @@ class ClpIrDecoder implements Decoder { endIdx: number, useFilter: boolean ): Nullable { - const results: DecodeResult[] = + const results: Nullable = this.#streamReader.decodeRange(beginIdx, endIdx, useFilter); + if (null === results) { + return null; + } + if (null === this.#formatter) { if (this.#streamType === CLP_IR_STREAM_TYPE.STRUCTURED) { // eslint-disable-next-line no-warning-comments From 4b9cfca00c6f92e579861a9f3472290302ed93b3 Mon Sep 17 00:00:00 2001 From: Dave Marco Date: Fri, 10 Jan 2025 01:49:32 +0000 Subject: [PATCH 2/8] add better guards for search, and fix range --- src/services/LogFileManager/index.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/services/LogFileManager/index.ts b/src/services/LogFileManager/index.ts index 328d8c90..26225ad0 100644 --- a/src/services/LogFileManager/index.ts +++ b/src/services/LogFileManager/index.ts @@ -366,14 +366,6 @@ class LogFileManager { } } - /** - * Queries a chunk of log events, sends the results, and schedules the next chunk query if more - * log events remain. - * - * @param queryId - * @param chunkBeginIdx - * @param queryRegex - */ #queryChunkAndScheduleNext ( queryId: number, chunkBeginIdx: number, @@ -383,7 +375,17 @@ class LogFileManager { // Current task no longer corresponds to the latest query in the LogFileManager. return; } - const chunkEndIdx = Math.min(chunkBeginIdx + QUERY_CHUNK_SIZE, this.#numEvents); + + const filteredLogEventMap = this.#decoder.getFilteredLogEventMap(); + const numActiveEvents: number = filteredLogEventMap ? + filteredLogEventMap.length : + this.#numEvents; + + if (0 === numActiveEvents) { + return; + } + + const chunkEndIdx = Math.min(chunkBeginIdx + QUERY_CHUNK_SIZE, numActiveEvents); const results: QueryResults = new Map(); const decodedEvents = this.#decoder.decodeRange( chunkBeginIdx, @@ -400,13 +402,13 @@ class LogFileManager { // The query progress takes the maximum of the progress based on the number of events // queried over total log events, and the number of results over the maximum result limit. const progress = Math.max( - chunkEndIdx / this.#numEvents, + chunkEndIdx / numActiveEvents, this.#queryCount / MAX_QUERY_RESULT_COUNT ); this.#onQueryResults(progress, results); - if (chunkEndIdx < this.#numEvents && MAX_QUERY_RESULT_COUNT > this.#queryCount) { + if (chunkEndIdx < numActiveEvents && MAX_QUERY_RESULT_COUNT > this.#queryCount) { defer(() => { this.#queryChunkAndScheduleNext(queryId, chunkEndIdx, queryRegex); }); From 8d5384dc03fe6414951e2578e2d6b3a0e48f81e6 Mon Sep 17 00:00:00 2001 From: Dave Marco Date: Fri, 10 Jan 2025 02:03:27 +0000 Subject: [PATCH 3/8] add back missing discription --- src/services/LogFileManager/index.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/services/LogFileManager/index.ts b/src/services/LogFileManager/index.ts index 26225ad0..22f4d4c6 100644 --- a/src/services/LogFileManager/index.ts +++ b/src/services/LogFileManager/index.ts @@ -365,7 +365,15 @@ class LogFileManager { } } } - + + /** + * Queries a chunk of log events, sends the results, and schedules the next chunk query if more + * log events remain. + * + * @param queryId + * @param chunkBeginIdx + * @param queryRegex + */ #queryChunkAndScheduleNext ( queryId: number, chunkBeginIdx: number, From b4b377fdcefe1c31e2f3a6bb30f2d26713a32a46 Mon Sep 17 00:00:00 2001 From: Dave Marco Date: Fri, 10 Jan 2025 02:03:59 +0000 Subject: [PATCH 4/8] remove space --- src/services/LogFileManager/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/LogFileManager/index.ts b/src/services/LogFileManager/index.ts index 22f4d4c6..0ff889b2 100644 --- a/src/services/LogFileManager/index.ts +++ b/src/services/LogFileManager/index.ts @@ -365,7 +365,7 @@ class LogFileManager { } } } - + /** * Queries a chunk of log events, sends the results, and schedules the next chunk query if more * log events remain. From ea74e74c8c0d7d10f51eb1e31df7df9571a4d2ea Mon Sep 17 00:00:00 2001 From: Dave Marco Date: Fri, 10 Jan 2025 02:15:41 +0000 Subject: [PATCH 5/8] fix lint --- src/services/LogFileManager/index.ts | 2 +- src/services/decoders/ClpIrDecoder.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/services/LogFileManager/index.ts b/src/services/LogFileManager/index.ts index 0ff889b2..73470706 100644 --- a/src/services/LogFileManager/index.ts +++ b/src/services/LogFileManager/index.ts @@ -1,4 +1,4 @@ -/* eslint max-lines: ["error", 450] */ +/* eslint max-lines: ["error", 500] */ import { Decoder, DecodeResult, diff --git a/src/services/decoders/ClpIrDecoder.ts b/src/services/decoders/ClpIrDecoder.ts index 8087b6b0..2a311d89 100644 --- a/src/services/decoders/ClpIrDecoder.ts +++ b/src/services/decoders/ClpIrDecoder.ts @@ -104,6 +104,10 @@ class ClpIrDecoder implements Decoder { const results: Nullable = this.#streamReader.decodeRange(beginIdx, endIdx, useFilter); + // eslint-disable-next-line no-warning-comments + // TODO: Fix DecodeResult typing in clp-ffi-js to be nullable. + + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (null === results) { return null; } From 537290cf1fdf8127c7ca12c7b418f0d24f0af9c4 Mon Sep 17 00:00:00 2001 From: davemarco <83603688+davemarco@users.noreply.github.com> Date: Thu, 9 Jan 2025 22:17:00 -0500 Subject: [PATCH 6/8] Update src/services/LogFileManager/index.ts Co-authored-by: Junhao Liao --- src/services/LogFileManager/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/services/LogFileManager/index.ts b/src/services/LogFileManager/index.ts index 73470706..2aa0c7a8 100644 --- a/src/services/LogFileManager/index.ts +++ b/src/services/LogFileManager/index.ts @@ -385,9 +385,9 @@ class LogFileManager { } const filteredLogEventMap = this.#decoder.getFilteredLogEventMap(); - const numActiveEvents: number = filteredLogEventMap ? - filteredLogEventMap.length : - this.#numEvents; + const numActiveEvents: number = (null === filteredLogEventMap) ? + this.#numEvents : + filteredLogEventMap.length; if (0 === numActiveEvents) { return; From b71dcb0ca4f6fe25fcc03d6054b3f67e02ee4263 Mon Sep 17 00:00:00 2001 From: davemarco <83603688+davemarco@users.noreply.github.com> Date: Thu, 9 Jan 2025 22:21:32 -0500 Subject: [PATCH 7/8] Update src/services/decoders/ClpIrDecoder.ts Co-authored-by: Junhao Liao --- src/services/decoders/ClpIrDecoder.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/services/decoders/ClpIrDecoder.ts b/src/services/decoders/ClpIrDecoder.ts index 2a311d89..5247aed0 100644 --- a/src/services/decoders/ClpIrDecoder.ts +++ b/src/services/decoders/ClpIrDecoder.ts @@ -101,13 +101,11 @@ class ClpIrDecoder implements Decoder { endIdx: number, useFilter: boolean ): Nullable { - const results: Nullable = - this.#streamReader.decodeRange(beginIdx, endIdx, useFilter); - // eslint-disable-next-line no-warning-comments - // TODO: Fix DecodeResult typing in clp-ffi-js to be nullable. + // TODO: Correct DecodeResult typing in `clp-ffi-js` and remove below type assertion. + const results = + this.#streamReader.decodeRange(beginIdx, endIdx, useFilter) as Nullable; - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (null === results) { return null; } From 0cdb80086a5a9dc24cf11fb5f4cc5aaa1a211552 Mon Sep 17 00:00:00 2001 From: Dave Marco Date: Fri, 10 Jan 2025 03:23:36 +0000 Subject: [PATCH 8/8] junhao review --- src/services/LogFileManager/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/services/LogFileManager/index.ts b/src/services/LogFileManager/index.ts index 2aa0c7a8..fd2322ee 100644 --- a/src/services/LogFileManager/index.ts +++ b/src/services/LogFileManager/index.ts @@ -385,9 +385,9 @@ class LogFileManager { } const filteredLogEventMap = this.#decoder.getFilteredLogEventMap(); - const numActiveEvents: number = (null === filteredLogEventMap) ? - this.#numEvents : - filteredLogEventMap.length; + const numActiveEvents: number = (null !== filteredLogEventMap) ? + filteredLogEventMap.length : + this.#numEvents; if (0 === numActiveEvents) { return; @@ -398,7 +398,7 @@ class LogFileManager { const decodedEvents = this.#decoder.decodeRange( chunkBeginIdx, chunkEndIdx, - null !== this.#decoder.getFilteredLogEventMap() + null !== filteredLogEventMap ); if (null === decodedEvents) {