qubes-issues icon indicating copy to clipboard operation
qubes-issues copied to clipboard

Aborting a qvm-template download does not exit gracefully

Open andrewdavidwong opened this issue 3 years ago • 0 comments

How to file a helpful issue

Qubes OS release

Qubes 4.1.1

Brief summary

Aborting a qvm-template download via Ctrl+C results in a traceback rather than catching the keyboard interrupt and exiting gracefully.

Steps to reproduce

  1. qvm-template install <some-template>
  2. Wait for download to start.
  3. Change your mind.
  4. Ctrl+C

Expected behavior

Recognizes that the user wishes to abort and gracefully terminates, cleaning up any temporary files that were created.

Actual behavior

Downloading 'qubes-template-debian-11-minimal-0:4.0.6-202108191622'...
qubes-template-debian-11-minimal-0:4.0.6-202108191622:   7%| | 14.7M/225M [00:29<05:44, 612kB/qubes-template-debian-11-minimal-0:4.0.6-202108191622:   7%| | 14.7M/225M [00:30<07:23, 476kB/
thread 'main' panicked at 'failed printing to stdout: Broken pipe (os error 32)', library/std/src/io/stdio.rs:940:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Traceback (most recent call last):
  File "/usr/bin/qvm-template", line 5, in <module>
    sys.exit(main())
  File "/usr/lib/python3.8/site-packages/qubesadmin/tools/qvm_template.py", line 1671, in main
    install(p_args, app)
  File "/usr/lib/python3.8/site-packages/qubesadmin/tools/qvm_template.py", line 933, in wrapper
    return func(*args, **kwargs)
  File "/usr/lib/python3.8/site-packages/qubesadmin/tools/qvm_template.py", line 1072, in install
    package_hdrs = download(args, app,
  File "/usr/lib/python3.8/site-packages/qubesadmin/tools/qvm_template.py", line 897, in download
    qrexec_download(args, app, spec, target_temp,
  File "/usr/lib/python3.8/site-packages/qubesadmin/tools/qvm_template.py", line 638, in qrexec_download
    for i in rpmcanon.stdout:
KeyboardInterrupt

andrewdavidwong avatar Jul 20 '22 11:07 andrewdavidwong