Skip to content

Commit f85709b

Browse files
committed
lava_callback: Fix crash on missing log from lava callback
Signed-off-by: Denys Fedoryshchenko <[email protected]>
1 parent 607bbe4 commit f85709b

File tree

1 file changed

+20
-17
lines changed

1 file changed

+20
-17
lines changed

src/lava_callback.py

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -274,24 +274,27 @@ def async_job_submit(api_helper, node_id, job_callback):
274274

275275
callback_data = job_callback.get_data()
276276
log_parser = job_callback.get_log_parser()
277-
job_result = job_callback.get_job_status()
278-
device_id = job_callback.get_device_id()
279-
storage_config_name = job_callback.get_meta('storage_config_name')
280-
storage = _get_storage(storage_config_name)
281-
log_txt_url = _upload_log(log_parser, job_node, storage)
282-
if log_txt_url:
283-
job_node['artifacts']['lava_log'] = log_txt_url
284-
logger.info(f"Log uploaded to {log_txt_url}")
277+
if log_parser:
278+
job_result = job_callback.get_job_status()
279+
device_id = job_callback.get_device_id()
280+
storage_config_name = job_callback.get_meta('storage_config_name')
281+
storage = _get_storage(storage_config_name)
282+
log_txt_url = _upload_log(log_parser, job_node, storage)
283+
if log_txt_url:
284+
job_node['artifacts']['lava_log'] = log_txt_url
285+
logger.info(f"Log uploaded to {log_txt_url}")
286+
else:
287+
logger.warning("Failed to upload log")
288+
metrics.add('lava_callback_late_fail_total', 1)
289+
callback_json_url = _upload_callback_data(callback_data, job_node, storage)
290+
if callback_json_url:
291+
job_node['artifacts']['callback_data'] = callback_json_url
292+
logger.info(f"Callback data uploaded to {callback_json_url}")
293+
else:
294+
metrics.add('lava_callback_late_fail_total', 1)
285295
else:
286-
logger.warning("Failed to upload log")
287-
metrics.add('lava_callback_late_fail_total', 1)
288-
callback_json_url = _upload_callback_data(callback_data, job_node, storage)
289-
if callback_json_url:
290-
job_node['artifacts']['callback_data'] = callback_json_url
291-
logger.info(f"Callback data uploaded to {callback_json_url}")
292-
else:
293-
metrics.add('lava_callback_late_fail_total', 1)
294-
296+
logger.warning("No log data found in callback")
297+
job_result = 'incomplete'
295298
# failed LAVA job should have result set to 'incomplete'
296299
job_node['result'] = job_result
297300
job_node['state'] = 'done'

0 commit comments

Comments
 (0)