From 6267fca93ed5ced63fad0c2abcf129a38c6727f9 Mon Sep 17 00:00:00 2001 From: Denys Fedoryshchenko Date: Tue, 7 Oct 2025 10:32:48 +0300 Subject: [PATCH] lava_callback: Fix crash on missing log from lava callback Signed-off-by: Denys Fedoryshchenko --- src/lava_callback.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/lava_callback.py b/src/lava_callback.py index ad68efbf4..fff712bab 100755 --- a/src/lava_callback.py +++ b/src/lava_callback.py @@ -278,20 +278,24 @@ def async_job_submit(api_helper, node_id, job_callback): device_id = job_callback.get_device_id() storage_config_name = job_callback.get_meta('storage_config_name') storage = _get_storage(storage_config_name) - log_txt_url = _upload_log(log_parser, job_node, storage) - if log_txt_url: - job_node['artifacts']['lava_log'] = log_txt_url - logger.info(f"Log uploaded to {log_txt_url}") - else: - logger.warning("Failed to upload log") - metrics.add('lava_callback_late_fail_total', 1) - callback_json_url = _upload_callback_data(callback_data, job_node, storage) - if callback_json_url: - job_node['artifacts']['callback_data'] = callback_json_url - logger.info(f"Callback data uploaded to {callback_json_url}") - else: - metrics.add('lava_callback_late_fail_total', 1) + if log_parser: + log_txt_url = _upload_log(log_parser, job_node, storage) + if log_txt_url: + job_node['artifacts']['lava_log'] = log_txt_url + logger.info(f"Log uploaded to {log_txt_url}") + else: + logger.warning("Failed to upload log") + metrics.add('lava_callback_late_fail_total', 1) + callback_json_url = _upload_callback_data(callback_data, job_node, storage) + if callback_json_url: + job_node['artifacts']['callback_data'] = callback_json_url + logger.info(f"Callback data uploaded to {callback_json_url}") + else: + metrics.add('lava_callback_late_fail_total', 1) + else: + logger.warning("No log data found in callback") + job_result = 'incomplete' # failed LAVA job should have result set to 'incomplete' job_node['result'] = job_result job_node['state'] = 'done'