Bug 528757 - 'rdp' graphics type uses SDL instead on KVM
Summary: 'rdp' graphics type uses SDL instead on KVM
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Virtualization Tools
Classification: Community
Component: libvirt
Version: unspecified
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Libvirt Maintainers
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-10-13 15:50 UTC by Matthew Booth
Modified: 2014-02-09 16:46 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-02-09 16:46:40 UTC
Embargoed:


Attachments (Terms of Use)

Description Matthew Booth 2009-10-13 15:50:34 UTC
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 15:24:17 UTC
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 Berrangé 2009-11-03 14:36:47 UTC
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 16:46:40 UTC
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.