From 126aa3376d0f5150b89fd9caf1fe810285146ee8 Mon Sep 17 00:00:00 2001 From: Konstantin Chukharev Date: Thu, 30 Jan 2025 12:48:22 +0300 Subject: [PATCH] Add logging when AA times out or fails --- .../kotlin/org/jacodb/ets/utils/LoadEtsFile.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/jacodb-ets/src/main/kotlin/org/jacodb/ets/utils/LoadEtsFile.kt b/jacodb-ets/src/main/kotlin/org/jacodb/ets/utils/LoadEtsFile.kt index c4ee31d17..eb2402dea 100644 --- a/jacodb-ets/src/main/kotlin/org/jacodb/ets/utils/LoadEtsFile.kt +++ b/jacodb-ets/src/main/kotlin/org/jacodb/ets/utils/LoadEtsFile.kt @@ -16,6 +16,7 @@ package org.jacodb.ets.utils +import mu.KotlinLogging import org.jacodb.ets.dto.EtsFileDto import org.jacodb.ets.dto.toEtsFile import org.jacodb.ets.model.EtsFile @@ -36,6 +37,8 @@ import kotlin.io.path.walk import kotlin.time.Duration import kotlin.time.Duration.Companion.seconds +private val logger = KotlinLogging.logger {} + private const val ENV_VAR_ARK_ANALYZER_DIR = "ARKANALYZER_DIR" private const val DEFAULT_ARK_ANALYZER_DIR = "arkanalyzer" @@ -86,8 +89,18 @@ fun generateEtsIR( useArkAnalyzerTypeInference?.let { "-t $it" }, projectPath.pathString, output.pathString, + "-v", ) - ProcessUtil.run(cmd, timeout = timeout) + val res = ProcessUtil.run(cmd, timeout = timeout) + if (res.exitCode != 0) { + logger.error { "ARKANALYZER failed with exit code ${res.exitCode}" } + logger.error { "STDOUT:\n${res.stdout}" } + logger.error { "STDERR:\n${res.stderr}" } + } else if (res.isTimeout) { + logger.error { "ARKANALYZER timed out after $timeout" } + logger.error { "STDOUT:\n${res.stdout}" } + logger.error { "STDERR:\n${res.stderr}" } + } return output }