Bug 528757 - 'rdp' graphics type uses SDL instead on KVM
'rdp' graphics type uses SDL instead on KVM
Status: CLOSED UPSTREAM
Product: Virtualization Tools
Classification: Community
Component: libvirt (Show other bugs)
unspecified
All Linux
low Severity medium
: ---
: ---
Assigned To: Libvirt Maintainers
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2009-10-13 11:50 EDT by Matthew Booth
Modified: 2014-02-09 11:46 EST (History)
8 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2014-02-09 11:46:40 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Matthew Booth 2009-10-13 11:50:34 EDT
Description of problem:
If you edit a KVM guest and change <graphics type='vnc'.../> to <graphics type='rdp' autoport='yes' multiUser='yes'/>, attempting to start the guest gives:

[root@mbooth ~]# virsh start Etch
error: Failed to start domain Etch
error: Failure while reading monitor startup output: Connection reset by peer

(and an SELinux denial, separate BZ)

Attempting to start it subsequent times gives the more revealing message:

[root@mbooth ~]# virsh start Etch
error: Failed to start domain Etch
error: internal error unable to start guest: char device redirected to /dev/pts/2
Could not initialize SDL - exiting

(and the same SELinux denial).

I understand that RDP is not supported on KVM. This should give an informative error message rather than falling back to SDL.

Version-Release number of selected component (if applicable):
libvirt-0.7.1-11.fc11.x86_64 (virt-preview on F-11)
Comment 1 Mark McLoughlin 2009-10-29 11:24:17 EDT
Okay, the problem is we do:

    if (!def->graphics)
        ADD_ARG_LIT("-nographic");

    if ((def->ngraphics == 1) &&
        def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC) {
          ...
          ADD_ARG_LIT("-vnc");
          ...
    } else if ((def->ngraphics == 1) &&
               def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_SDL) {
    }

so, the result is that if you specify multiple graphics backends or a backend other than VNC or SDL, then we don't pass any graphics related switch to qemu and it defaults to SDL

Move to upstream bug tracker; if there was an upstream fix, we'd probably cherry-pick into Fedora, but in the absence of that it's probably not worth tracking specifically for Fedora
Comment 2 Daniel Berrange 2009-11-03 09:36:47 EST
I have a patch that's not upstream, that includes the following extra chunk


@@ -2146,6 +2152,9 @@ int qemudBuildCommandLine(virConnectPtr 
          */
         ADD_ENV_COPY("QEMU_AUDIO_DRV");
         ADD_ENV_COPY("SDL_AUDIODRIVER");
+    } else if (def->ngraphics) {
+        qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
+                         "%s", _("unsupported graphics output requested"));
     }


this would avoid the problem seen here.
Comment 3 Cole Robinson 2014-02-09 11:46:40 EST
This has been fixed upstream for a long time

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