reframe-hpc / reframe

A powerful Python framework for writing and running portable regression tests and benchmarks for HPC systems.
https://reframe-hpc.readthedocs.org
BSD 3-Clause "New" or "Revised" License
217 stars 103 forks source link

Failure info crashes if nodelist is `None` #3214

Closed vkarak closed 3 months ago

vkarak commented 3 months ago
ERROR: run session stopped: type error: nodes argument must be a Sequence
ERROR: Traceback (most recent call last):
  File "/home/vkarakasis/.local/reframe/reframe/frontend/cli.py", line 1415, in main
    runner.runall(testcases, restored_cases)
  File "/home/vkarakasis/.local/reframe/reframe/core/logging.py", line 1020, in _fn
    return fn(*args, **kwargs)
  File "/home/vkarakasis/.local/reframe/reframe/frontend/executors/__init__.py", line 551, in runall
    self._runall(testcases)
  File "/home/vkarakasis/.local/reframe/reframe/frontend/executors/__init__.py", line 635, in _runall
    self._policy.exit()
  File "/home/vkarakasis/.local/reframe/reframe/frontend/executors/policies.py", line 345, in exit
    self._poll_tasks()
  File "/home/vkarakasis/.local/reframe/reframe/frontend/executors/policies.py", line 395, in _poll_tasks
    sched.poll(*jobs)
  File "/home/vkarakasis/.local/reframe/reframe/core/schedulers/slurm.py", line 426, in poll
    completed = _run_strict(
  File "/home/vkarakasis/.local/reframe/reframe/utility/osext.py", line 277, in run_command
    proc_stdout, proc_stderr = proc.communicate(timeout=timeout)
  File "/usr/lib/python3.10/subprocess.py", line 1154, in communicate
    stdout, stderr = self._communicate(input, endtime, timeout)
  File "/usr/lib/python3.10/subprocess.py", line 2021, in _communicate
    ready = selector.select(timeout)
  File "/usr/lib/python3.10/selectors.py", line 416, in select
    fd_event_list = self._selector.poll(timeout)
KeyboardInterrupt

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/vkarakasis/.local/reframe/reframe/frontend/cli.py", line 1431, in main
    runner.stats.print_failure_report(
  File "/home/vkarakasis/.local/reframe/reframe/frontend/statistics.py", line 285, in print_failure_report
    _print_failure_info(r, run_no, len(run_report))
  File "/home/vkarakasis/.local/reframe/reframe/frontend/statistics.py", line 241, in _print_failure_info
    f"  * Node list: {util.nodelist_abbrev(rec['job_nodelist'])}"
  File "/home/vkarakasis/.local/reframe/reframe/utility/__init__.py", line 996, in nodelist_abbrev
    raise TypeError('nodes argument must be a Sequence')
TypeError: nodes argument must be a Sequence
vkarak commented 3 months ago

Invalid: this is in a development branch where this functionality seems broken.