From 0cc6334ad97f38c1e09f748a4d3eaafcfac795f4 Mon Sep 17 00:00:00 2001 From: Nikolai Bogdanov Date: Mon, 21 Jul 2025 10:02:35 +0000 Subject: [PATCH] [llm-eval] LME-495 Accept failed eval reports Merge-request: IJ-MR-169555 Merged-by: Nikolai Bogdanov GitOrigin-RevId: 7980e606b1a3664c76b8a8e0a791aca4d15acaa8 --- .../actions/CompletionEvaluationStarter.kt | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/plugins/evaluation-plugin/src/com/intellij/cce/actions/CompletionEvaluationStarter.kt b/plugins/evaluation-plugin/src/com/intellij/cce/actions/CompletionEvaluationStarter.kt index fda3ec121516..028ab0c8ed69 100644 --- a/plugins/evaluation-plugin/src/com/intellij/cce/actions/CompletionEvaluationStarter.kt +++ b/plugins/evaluation-plugin/src/com/intellij/cce/actions/CompletionEvaluationStarter.kt @@ -27,6 +27,7 @@ import com.intellij.ide.commandNameFromExtension import com.intellij.openapi.application.ApplicationStarter import com.intellij.openapi.application.ex.ApplicationEx.FORCE_EXIT import com.intellij.openapi.application.ex.ApplicationManagerEx +import com.intellij.openapi.diagnostic.currentClassLogger import java.nio.file.Path import java.nio.file.Paths import kotlin.io.path.exists @@ -220,7 +221,7 @@ internal class CompletionEvaluationStarter : ApplicationStarter { workspace.readAdditionalStats(LAYOUT_NAME)?.let { outputWorkspace.saveAdditionalStats(LAYOUT_NAME, it) } - val sessionFiles = workspace.sessionsStorage.getSessionFiles() + val sessionFiles = workspace.getSessionFilesSafe() for (sessionFile in sessionFiles) { outputWorkspace.sessionsStorage.saveSessions(workspace.sessionsStorage.getSessions(sessionFile.first)) } @@ -234,6 +235,23 @@ internal class CompletionEvaluationStarter : ApplicationStarter { process.start(outputWorkspace) } } + + /** + * Let's not fail the aggregation of the evaluation report if some + * child builds failed (and so some files are missing). + */ + private fun EvaluationWorkspace.getSessionFilesSafe(): List> = + try { + sessionsStorage.getSessionFiles() + } + catch (e: Throwable) { + logger.warn("Failed to get session files from workspace ${this.path()}. Probably some evaluation builds failed") + emptyList() + } + } + + companion object { + val logger = currentClassLogger() } }