RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 2014229 - virt-install fails with iso files over https
Summary: virt-install fails with iso files over https
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: qemu-kvm
Version: 9.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: rc
: ---
Assignee: Miroslav Rezanina
QA Contact: Tingting Mao
Jiri Herrmann
URL:
Whiteboard: CockpitTest
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-10-14 16:34 UTC by Matej Marušák
Modified: 2024-01-08 13:16 UTC (History)
24 users (show)

Fixed In Version:
Doc Type: Known Issue
Doc Text:
.Installing a virtual machine over https or ssh in some cases fails Currently, the `virt-install` utility fails when attempting to install a guest operating system (OS) from an ISO source over a https or ssh connection - for example using `pass:[virt-install --cdrom https://example/path/to/image.iso]`. Instead of creating a virtual machine (VM), the described operation ends unexpectedly with an `internal error: process exited while connecting to monitor` message. Similarly, using the RHEL 9 web console to install a guest operating system fails and displays an `Unknown driver 'https'` error if you use an https or ssh URL, or the `Download OS` function. To work around this problem, install `qemu-kvm-block-curl` and `qemu-kvm-block-ssh` on the host to enable https and ssh protocol support. Alternatively, use a different connection protocol or a different installation source.
Clone Of:
Environment:
Last Closed: 2022-08-10 07:44:50 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHELPLAN-99854 0 None None None 2021-10-14 16:35:13 UTC

Description Matej Marušák 2021-10-14 16:34:15 UTC
Description of problem:
This was caught by cockpit CI in the newest refresh of rhel-9-0 image.
`qemu-kvm` stopped being depended on `qemu-kvm-block-curl` and this subpackage is now only part of CRB. Now trying to use virt-install with --cdrom <https://...> fails.

Related for removal of this package: https://bugzilla.redhat.com/show_bug.cgi?id=2001100

Version-Release number of selected component (if applicable):
qemu-kvm (17:6.1.0-3.el9 -> 17:6.1.0-5.el9)
and removal of qemu-kvm-block-curl (17:6.1.0-3.el9)


How reproducible:
# virt-install --connect qemu:///system --quiet --name subVmTestCreate7 --os-variant fedora28 --memory 128 --check path_in_use=off --wait -1 --noautoconsole --disk none --graphics vnc,listen=127.0.0.1 --cdrom https://archive.fedoraproject.org/pub/archive/fedora/linux/releases/28/Server/x86_64/os/images/boot.iso
ERROR    internal error: process exited while connecting to monitor: 2021-10-14T13:23:35.235273Z qemu-kvm: -blockdev {"driver":"https","url":"https://archive.fedoraproject.org:443/pub/archive/fedora/linux/releases/28/Server/x86_64/os/images/boot.iso","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}: Unknown driver 'https'
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///system start subVmTestCreate7
otherwise, please restart your installation.

Actual results:
Fails with `Unknown driver 'https'`


Expected results:
VM is created


Additional info:
I know I am reporting this against virt-manager but I am mostly talking about qemu-kvm. Not sure where this belongs, please reassign if needed.

Comment 1 zhoujunqin 2021-10-20 07:19:32 UTC
I can reproduce this issue.

With package:
libvirt-7.8.0-1.el9.x86_64
qemu-kvm-6.1.0-6.el9.x86_64
virt-install-3.2.0-9.el9.noarch

Steps:
1. # rpm -qR qemu-kvm-6.1.0-6.el9.x86_64 |grep curl 
Result - Shows no dependencies with qemu-kvm-block-curl-6.1.0-6.el9.x86_64

2. Use virt-install to install a VM.
# virt-install --connect  qemu:///system  --cdrom http://download.eng.pek2.redhat.com/rhel-9/nightly/RHEL-9-Beta/latest-RHEL-9.0.0/compose/BaseOS/x86_64/iso/RHEL-9.0.0-20211016.6-BaseOS-x86_64-boot.iso  --memory 4096 --disk /home/test-cdrom.img,size=10
Using default --name vm3
WARNING  No operating system detected, VM performance may suffer. Specify an OS with --os-variant for optimal results.

Starting install...
Allocating 'test-cdrom.img'                                                  |  10 GB  00:00:01    
Removing disk 'test-cdrom.img'                                               |    0 B  00:00:00    
ERROR    internal error: process exited while connecting to monitor: 2021-10-20T07:10:53.310649Z qemu-kvm: -blockdev {"driver":"http","url":"http://download.eng.pek2.redhat.com:80/rhel-9/nightly/RHEL-9-Beta/latest-RHEL-9.0.0/compose/BaseOS/x86_64/iso/RHEL-9.0.0-20211016.6-BaseOS-x86_64-boot.iso","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}: Driver 'http' is not whitelisted
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///system start vm3
otherwise, please restart your installation.

Comment 2 Jonathon Jongsma 2021-10-20 14:21:21 UTC
(In reply to zhoujunqin from comment #1)
> ERROR    internal error: process exited while connecting to monitor:
> 2021-10-20T07:10:53.310649Z qemu-kvm: -blockdev
> {"driver":"http","url":"http://download.eng.pek2.redhat.com:80/rhel-9/
> nightly/RHEL-9-Beta/latest-RHEL-9.0.0/compose/BaseOS/x86_64/iso/RHEL-9.0.0-
> 20211016.6-BaseOS-x86_64-boot.iso","node-name":"libvirt-1-storage","auto-
> read-only":true,"discard":"unmap"}: Driver 'http' is not whitelisted
> Domain installation does not appear to have been successful.
> If it was, you can restart your domain by running:
>   virsh --connect qemu:///system start vm3
> otherwise, please restart your installation.


Note that this is a different error. Compare:

> Driver 'http' is not whitelisted

vs

> Unknown driver 'https'

Try using an https URI to ensure that you're reproducing the same issue.

Comment 10 Tingting Mao 2021-10-27 08:47:39 UTC
The solution seems be included in #bug 2016527.

Comment 11 Jiri Denemark 2021-10-27 12:07:24 UTC
(In reply to Tingting Mao from comment #10)
> The solution seems be included in #bug 2016527.

Yes, that's the long term solution.

Short term (until bug 2016527 is implemented) libvirt will need to add an
explicit dependency on qemu-kvm-block-driver-curl. I discussed other options
with Mirek and having the dependency in libvirt makes most sense as we can
easily drop the dependency once we switch to nbdkit without having to
synchronize with either virt-install or qemu.

Comment 13 Jonathon Jongsma 2021-10-28 18:45:18 UTC
(In reply to Jiri Denemark from comment #11)
> (In reply to Tingting Mao from comment #10)
> > The solution seems be included in #bug 2016527.
> 
> Yes, that's the long term solution.
> 
> Short term (until bug 2016527 is implemented) libvirt will need to add an
> explicit dependency on qemu-kvm-block-driver-curl. I discussed other options
> with Mirek and having the dependency in libvirt makes most sense as we can
> easily drop the dependency once we switch to nbdkit without having to
> synchronize with either virt-install or qemu.

Then I suppose libvirt will also need to add a dependency on qemu-kvm-block-ssh since according to bug 2001100 that was also removed from the qemu deps.

Comment 14 Jiri Denemark 2021-11-08 13:34:46 UTC
I sent a patch upstream and it was pointed out that this is a change in
qemu-kvm and should be fixed there, because it would affect anyone depending
on qemu-kvm package while the proposed patch would only fix this for those
depending on libvirt-daemon-kvm.

Minimal installs can still use specific subpackages to avoid installing those
that are not needed.

See https://listman.redhat.com/archives/libvir-list/2021-October/msg01069.html
thread.

Comment 18 Miroslav Rezanina 2021-11-24 07:21:01 UTC
We are no longer support using curl by default as it is recommended to use nbdkit instead of qemu-kvm for this. Anyone wanting to use this feature from qemu has to install additional package with the support for this use case manually.

Comment 19 Jaroslav Suchanek 2021-11-24 11:40:33 UTC
(In reply to Miroslav Rezanina from comment #18)
> We are no longer support using curl by default as it is recommended to use
> nbdkit instead of qemu-kvm for this. Anyone wanting to use this feature from
> qemu has to install additional package with the support for this use case
> manually.

1) Is the qemu-kvm sub-package (qemu-kvm-block-curl-<ver>.el9) available in the compose if there are no explicit dependencies? Is it actually released? 
2) The nbdkit support is work in progress and has not been proposed upstream yet, meanwhile we need to release what we have and as it was.

Comment 20 Richard W.M. Jones 2021-12-01 15:36:44 UTC
Can we suggest that cockpit uses nbdkit-curl-plugin directly, at least
temporarily in RHEL 9.0? (will be fixed in libvirt in 9.1)

Comment 21 Jaroslav Suchanek 2021-12-01 16:53:05 UTC
(In reply to Richard W.M. Jones from comment #20)
> Can we suggest that cockpit uses nbdkit-curl-plugin directly, at least
> temporarily in RHEL 9.0? (will be fixed in libvirt in 9.1)

I guess we can, but the a) plugin has to be available in the componse, b) what if there are other than cockpit-machine users? Internal teams use virt-install for various CI tasks and their infra management tasks. I assume they do not run on rhel-9-beta in many cases and yet did not hit the problem.

Adding the dependency to virt-install is not an option, since virt-install can connect remotely.

Comment 22 Miroslav Rezanina 2021-12-09 04:37:35 UTC
(In reply to Jaroslav Suchanek from comment #19)
> (In reply to Miroslav Rezanina from comment #18)
> > We are no longer support using curl by default as it is recommended to use
> > nbdkit instead of qemu-kvm for this. Anyone wanting to use this feature from
> > qemu has to install additional package with the support for this use case
> > manually.
> 
> 1) Is the qemu-kvm sub-package (qemu-kvm-block-curl-<ver>.el9) available in
> the compose if there are no explicit dependencies? Is it actually released? 
> 2) The nbdkit support is work in progress and has not been proposed upstream
> yet, meanwhile we need to release what we have and as it was.


Hi Jarda,

we requested adding curl driver to compose in https://issues.redhat.com/browse/RHELCMP-7606. In addition,
release note will be updated with known issue requiring manual installation of package in case https driver
should be used.


Note You need to log in before you can comment on or make changes to this bug.