Error with "runs" request - Database job_data_t0n3.experiment_run corrupted
Hi, since the last week, I'm having an error with the next request that we used in the testing suite to create a performance comparison between two runs. It is only happening for the t0n3
experiment, so I think it is more of a random corruption of the database or similar, more than anything related to the latest changes to the API.
This is the request we use:
http://192.168.11.91:8081/runs/t0n3
I tried to access the request via browser (firefox) and this was the output:
error: true
error_message: "invalid literal for int() with base 10: 'NA'"
runs: []
And here it is the error that the python code complains (it is out of range because it is an empty list due to the results shown above) due to this:
Traceback (most recent call last):
File "./testing_suite.py", line 829, in <module>
main()
File "./testing_suite.py", line 726, in main
historic_performance(my_experiments)
File "./testing_suite.py", line 399, in historic_performance
last_run = [run for run in historic_performance_metrics if run["run_id"] == max(run["run_id"] for run in historic_performance_metrics)][0]
IndexError: list index out of range
in API side:
14 Traceback (most recent call last):
15 File "/root/miniconda3/envs/autosubmit_api/lib/python3.7/site-packages/flask/app.py", line 2525, in wsgi_app
16 response = self.full_dispatch_request()
17 File "/root/miniconda3/envs/autosubmit_api/lib/python3.7/site-packages/flask/app.py", line 1822, in full_dispatch_request
18 rv = self.handle_user_exception(e)
19 File "/root/miniconda3/envs/autosubmit_api/lib/python3.7/site-packages/flask_cors/extension.py", line 165, in wrapped_function
20 return cors_after_request(app.make_response(f(*args, **kwargs)))
21 File "/root/miniconda3/envs/autosubmit_api/lib/python3.7/site-packages/flask/app.py", line 1820, in full_dispatch_request
22 rv = self.dispatch_request()
23 File "/root/miniconda3/envs/autosubmit_api/lib/python3.7/site-packages/flask/app.py", line 1796, in dispatch_request
24 return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
25 File "/root/miniconda3/envs/autosubmit_api/lib/python3.7/site-packages/autosubmit_api/app.py", line 241, in get_runs
26 result = CommonRequests.get_experiment_runs(expid)
27 File "/root/miniconda3/envs/autosubmit_api/lib/python3.7/site-packages/autosubmit_api/experiment/common_requests.py", line 1492, in get_experiment_runs
28 raise exp
29 File "/root/miniconda3/envs/autosubmit_api/lib/python3.7/site-packages/autosubmit_api/experiment/common_requests.py", line 1438, in get_experiment_runs
30 experiment_runs = experiment_history.manager.get_experiment_runs_dcs() # job_data_structure.get_experiment_runs()
31 File "/root/miniconda3/envs/autosubmit_api/lib/python3.7/site-packages/autosubmit_api/history/database_managers/experiment_history_db_manager.py", line 219, in get_experiment_runs_dcs
32 return [ExperimentRun.from_model(row) for row in experiment_run_rows]
33 File "/root/miniconda3/envs/autosubmit_api/lib/python3.7/site-packages/autosubmit_api/history/database_managers/experiment_history_db_manager.py", line 219, in <listcomp>
34 return [ExperimentRun.from_model(row) for row in experiment_run_rows]
35 File "/root/miniconda3/envs/autosubmit_api/lib/python3.7/site-packages/autosubmit_api/history/data_classes/experiment_run.py", line 115, in from_model
36 experiment_run.finish = int(row_dict.get('finish', 0))
Can you take a look @jberlin? Thanks.