When the portfolio runner fails to execute any search configuration because the time limit is too low, we get an unhandled exception:
=========================================
$ ./fast-downward.py --alias seq-sat-fdss-2018 --search-time-limit 0s ~/downward/benchmarks/blocks/probBLOCKS-4-0.pddl
INFO planner time limit: None
INFO planner memory limit: None
[...]
Writing output... [0.000s CPU, 0.000s wall-clock]
Done! [0.010s CPU, 0.008s wall-clock]
translate exit code: 0
INFO Running search (release).
INFO search portfolio: /home/helmert/downward/master/driver/portfolios/seq_sat_fdss_2018.py
remaining time: 0.0
config 0: relative time 26, remaining time 1583, absolute time 0
remaining time: 0.0
config 1: relative time 25, remaining time 1557, absolute time 0
remaining time: 0.0
config 2: relative time 135, remaining time 1532, absolute time 0
remaining time: 0.0
config 3: relative time 59, remaining time 1397, absolute time 0
remaining time: 0.0
config 4: relative time 23, remaining time 1338, absolute time 0
remaining time: 0.0
config 5: relative time 57, remaining time 1315, absolute time 0
remaining time: 0.0
config 6: relative time 17, remaining time 1258, absolute time 0
remaining time: 0.0
config 7: relative time 12, remaining time 1241, absolute time 0
remaining time: 0.0
config 8: relative time 26, remaining time 1229, absolute time 0
remaining time: 0.0
config 9: relative time 28, remaining time 1203, absolute time 0
remaining time: 0.0
config 10: relative time 29, remaining time 1175, absolute time 0
remaining time: 0.0
config 11: relative time 88, remaining time 1146, absolute time 0
remaining time: 0.0
config 12: relative time 8, remaining time 1058, absolute time 0
remaining time: 0.0
config 13: relative time 54, remaining time 1050, absolute time 0
remaining time: 0.0
config 14: relative time 24, remaining time 996, absolute time 0
remaining time: 0.0
config 15: relative time 29, remaining time 972, absolute time 0
remaining time: 0.0
config 16: relative time 30, remaining time 943, absolute time 0
remaining time: 0.0
config 17: relative time 28, remaining time 913, absolute time 0
remaining time: 0.0
config 18: relative time 58, remaining time 885, absolute time 0
remaining time: 0.0
config 19: relative time 26, remaining time 827, absolute time 0
remaining time: 0.0
config 20: relative time 27, remaining time 801, absolute time 0
remaining time: 0.0
config 21: relative time 50, remaining time 774, absolute time 0
remaining time: 0.0
config 22: relative time 28, remaining time 724, absolute time 0
remaining time: 0.0
config 23: relative time 29, remaining time 696, absolute time 0
remaining time: 0.0
config 24: relative time 21, remaining time 667, absolute time 0
remaining time: 0.0
config 25: relative time 21, remaining time 646, absolute time 0
remaining time: 0.0
config 26: relative time 24, remaining time 625, absolute time 0
remaining time: 0.0
config 27: relative time 28, remaining time 601, absolute time 0
remaining time: 0.0
config 28: relative time 28, remaining time 573, absolute time 0
remaining time: 0.0
config 29: relative time 53, remaining time 545, absolute time 0
remaining time: 0.0
config 30: relative time 29, remaining time 492, absolute time 0
remaining time: 0.0
config 31: relative time 27, remaining time 463, absolute time 0
remaining time: 0.0
config 32: relative time 29, remaining time 436, absolute time 0
remaining time: 0.0
config 33: relative time 54, remaining time 407, absolute time 0
remaining time: 0.0
config 34: relative time 87, remaining time 353, absolute time 0
remaining time: 0.0
config 35: relative time 30, remaining time 266, absolute time 0
remaining time: 0.0
config 36: relative time 56, remaining time 236, absolute time 0
remaining time: 0.0
config 37: relative time 19, remaining time 180, absolute time 0
remaining time: 0.0
config 38: relative time 56, remaining time 161, absolute time 0
remaining time: 0.0
config 39: relative time 24, remaining time 105, absolute time 0
remaining time: 0.0
config 40: relative time 81, remaining time 81, absolute time 0
Exit codes: []
Traceback (most recent call last):
File "/home/helmert/downward/master/./fast-downward.py", line 5, in <module>
main()
File "/home/helmert/downward/master/driver/main.py", line 41, in main
(exitcode, continue_execution) = run_components.run_search(args)
File "/home/helmert/downward/master/driver/run_components.py", line 119, in run_search
return portfolio_runner.run(
File "/home/helmert/downward/master/driver/portfolio_runner.py", line 239, in run
return returncodes.generate_portfolio_exitcode(list(exitcodes))
File "/home/helmert/downward/master/driver/returncodes.py", line 106, in generate_portfolio_exitcode
assert False, "Error: Unhandled exit codes: {}".format(exitcodes)
AssertionError: Error: Unhandled exit codes: set()
=========================================
returncodes.generate_portfolio_exitcode should be prepared for the case that it is passed an empty argument.
|