1. 26 1月, 2011 6 次提交
    • L
      Set SELinux context label of pipes used for qemu migration · 34a19dda
      Laine Stump 提交于
      This patch is a partial resolution to the following bug:
      
         https://bugzilla.redhat.com/show_bug.cgi?id=667756
      
      (to complete the fix, an updated selinux-policy package is required,
      to add the policy that allows libvirt to set the context of a fifo,
      which was previously not allowed).
      
      Explanation : When an incoming migration is over a pipe (for example,
      if the image was compressed and is being fed through gzip, or was on a
      root-squash nfs server, so needed to be opened by a child process
      running as a different uid), qemu cannot read it unless the selinux
      context label for the pipe has been set properly.
      
      The solution is to check the fd used as the source of the migration
      just before passing it to qemu; if it's a fifo (implying that it's a
      pipe), we call the newly added virSecurityManagerSetFDLabel() function
      to set the context properly.
      34a19dda
    • L
      Add a function to the security driver API that sets the label of an open fd. · d89608f9
      Laine Stump 提交于
      A need was found to set the SELinux context label on an open fd (a
      pipe, as a matter of fact). This patch adds a function to the security
      driver API that will set the label on an open fd to secdef.label. For
      all drivers other than the SELinux driver, it's a NOP. For the SElinux
      driver, it calls fsetfilecon().
      
      If the return is a failure, it only returns error up to the caller if
      1) the desired label is different from the existing label, 2) the
      destination fd is of a type that supports setting the selinux context,
      and 3) selinux is in enforcing mode. Otherwise it will return
      success. This follows the pattern of the existing function
      SELinuxSetFilecon().
      d89608f9
    • J
      docs: add a link to the bindings page under the downloads menu item · 413c88e7
      Justin Clift 提交于
      So people looking to download the language bindings, but don't know
      they're under the "Docs" area.
      413c88e7
    • M
      virsh: require --mac to avoid detach-interface ambiguity · cee47aac
      Michal Privoznik 提交于
      bugfix for https://bugzilla.redhat.com/show_bug.cgi?id=671050
      
      virsh simply refutes to detach-interface in case when multiple
      interfaces are attached and --mac is not specified.
      cee47aac
    • W
      dispatch error before return · 75da8b85
      Wen Congyang 提交于
      Signed-off-by: NWen Congyang <wency@cn.fujitsu.com>
      75da8b85
    • O
      qemu: Error prompt when managed save a shutoff domain · dbd63c4d
      Osier Yang 提交于
      The problem was introduced by commit 4303c91c, which removed the checking
      of domain state, this patch is to fix it.
      
      Otherwise, improper error will be thrown, e.g.
      
      error: Failed to save domain rhel6 state
      error: cannot resolve symlink /var/lib/libvirt/qemu/save/rhel6.save: No such
      file or directory
      dbd63c4d
  2. 25 1月, 2011 2 次提交
    • E
      build: avoid corrupted gnulib/tests/Makefile · 6cbab7c1
      Eric Blake 提交于
      Running 'make check' can sometimes fail in the gnulib/tests
      subdirectory, when doing an incremental build, because
      ./bootstrap generates a Makefile.am that tries to refer to
      ../../.. instead of ../.., and gets lost.
      
      This may be an upstream gnulib bug, where a more elegant
      solution will present itself in the future:
      http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/24898
      
      But in the meantime, I was able to reproduce both the issue,
      and this solution to work around it.
      
      * bootstrap.conf (bootstrap_epilogue): Ensure that no stray
      ../../.. components remain in gnulib/tests/Makefile.in.
      Reported by Serge Hallyn.
      6cbab7c1
    • C
      qemu: sound: Support intel 'ich6' model · 6cabc0b0
      Cole Robinson 提交于
      In QEMU, the card itself is a PCI device, but it requires a codec
      (either -device hda-output or -device hda-duplex) to actually output
      sound. Specifying <sound model='ich6'/> gives us -device intel-hda
      -device hda-duplex I think it's important that a simple <sound model='ich6'/>
      sets up a useful codec, to have consistent behavior with all other sound cards.
      
      This is basically Dan's proposal of
      
          <sound model='ich6'>
              <codec type='output' slot='0'/>
              <codec type='duplex' slot='3'/>
          </sound>
      
      without the codec bits implemented.
      
      The important thing is to keep a consistent API here, we don't want some
      <sound> devs require tweaking codecs but not others. Steps I see to
      accomplishing this:
      
          - every <sound> device has a <codec type='default'/> (unless codecs are
              manually specified)
          - <codec type='none'/> is required to specify 'no codecs'
          - new audio settings like mic=on|off could then be exposed in
              <sound> or <codec> in a consistent manner for all sound models
      
      v2:
          Use model='ich6'
      
      v3:
          Use feature detection, from eblake
          Set codec id, bus, and cad values
      
      v4:
          intel-hda isn't supported if -device isn't available
      
      v5:
          Comment spelling fixes
      6cabc0b0
  3. 22 1月, 2011 13 次提交
    • M
      4a267912
    • E
      event: fix event-handling data race · a11bd2e6
      Eric Blake 提交于
      This bug has been present since before the time that commit
      f8a519 (Dec 2008) tried to make the dispatch loop re-entrant.
      
      Dereferencing eventLoop.handles outside the lock risks crashing, since
      any other thread could have reallocated the array in the meantime.
      It's a narrow race window, however, and one that would have most
      likely resulted in passing bogus data to the callback rather than
      actually causing a segv, which is probably why it has gone undetected
      this long.
      
      * daemon/event.c (virEventDispatchHandles): Cache data while
      inside the lock, as the array might be reallocated once outside.
      a11bd2e6
    • E
      build: fix 'make check' with older git · ae0cdd47
      Eric Blake 提交于
      * .gnulib: Update to latest, for maintainer-makefile fix.
      Reported by Matthias Bolte.
      ae0cdd47
    • C
      Push unapplied fixups for previous patch · 1e1f7a89
      Cole Robinson 提交于
      - Add augeas tests
      - Clarify vnc_auto_unix_socket precedence in qemu.conf
      1e1f7a89
    • C
      qemu: Add conf option to auto setup VNC unix sockets · a942ea06
      Cole Robinson 提交于
      If vnc_auto_unix_socket is enabled, any VNC devices without a hardcoded
      listen or socket value will be setup to serve over a unix socket in
      /var/lib/libvirt/qemu/$vmname.vnc.
      
      We store the generated socket path in the transient VM definition at
      CLI build time.
      a942ea06
    • C
      qemu: Allow serving VNC over a unix domain socket · 1d9c0a08
      Cole Robinson 提交于
      QEMU supports serving VNC over a unix domain socket rather than traditional
      TCP host/port. This is specified with:
      
      <graphics type='vnc' socket='/foo/bar/baz'/>
      
      This provides better security access control than VNC listening on
      127.0.0.1, but will cause issues with tools that rely on the lax security
      (virt-manager in fedora runs as regular user by default, and wouldn't be
      able to access a socket owned by 'qemu' or 'root').
      
      Also not currently supported by any clients, though I have patches for
      virt-manager, and virt-viewer should be simple to update.
      
      v2:
          schema: Make listen vs. socket a <choice>
      1d9c0a08
    • C
      qemu: Set domain def transient at beginning of startup process · cb4c2694
      Cole Robinson 提交于
      This will allow us to record transient runtime state in vm->def, like
      default VNC parameters. Accomplish this by adding an extra 'live' parameter
      to SetDefTransient, with similar semantics to the 'live' flag for
      AssignDef.
      cb4c2694
    • E
      maint: support --no-git option during autogen.sh · 125978fe
      Eric Blake 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=562743
      
      Also, fixes gnulib bug in dealing with strerror_r from glibc 2.13.
      
      * .gnulib: Update to latest, for improved bootstrap.
      * bootstrap: Resync from gnulib.
      * autogen.sh (bootstrap): Add --bootstrap-sync, to make it easier
      to keep bootstrap up-to-date.  Pass optional --no-git through.
      Reported by Aleksey Avdeev.
      125978fe
    • J
      [v2] qemu: Retry JSON monitor cont cmd on MigrationExpected error · 4301b95a
      Jim Fehlig 提交于
      When restoring a saved qemu instance via JSON monitor, the vm is
      left in a paused state.  Turns out the 'cont' cmd was failing with
      "MigrationExpected" error class and "An incoming migration is
      expected before this command can be executed" error description
      due to migration (restore) not yet complete.
      
      Detect if 'cont' cmd fails with "MigrationExpecte" error class and
      retry 'cont' cmd.
      
      V2: Fix potential double-free noted by Laine Stump
      4301b95a
    • O
      qemu: report more proper error for unsupported graphics · af268f2a
      Osier Yang 提交于
      Report VIR_ERR_CONFIG_UNSUPPORTED instead of VIR_ERR_INTERNAL_ERROR,
      as it's valid in our domain schema, just unsupported by hypervisor
      here.
      
      * src/qemu/qemu_command.c
      af268f2a
    • D
      Fix startup with VNC password expiry on old QEMU · 87a183f6
      Daniel P. Berrange 提交于
      The code which set VNC passwords correctly had fallback for
      the set_password command, but was lacking it for the
      expire_password command. This made it impossible to start
      a guest. It also failed to check whether QEMU was still
      running after the initial 'set_password' command completed
      
      * src/qemu/qemu_hotplug.c: Fix error handling when
        password expiry fails
      * src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_text.c: Fix
        return code for missing expire_password command
      87a183f6
    • D
      Fix error reporting when machine type probe fails · f0bbf960
      Daniel P. Berrange 提交于
      Avoid overwriting the real error message with a generic
      OOM failure message, when machine type probe fails
      
      * src/qemu/qemu_driver.c: Don't overwrite error
      f0bbf960
    • D
      Avoid crash in security driver if model is NULL · 31c698d7
      Daniel P. Berrange 提交于
      If the XML security model is NULL, it is assumed that the current
      model will be used with dynamic labelling. The verify step is
      meaningless and potentially crashes if dereferencing NULL
      
      * src/security/security_manager.c: Skip NULL model on verify
      31c698d7
  4. 21 1月, 2011 1 次提交
    • W
      qemu: Fix a possible deadlock in p2p migration · bda57661
      Wen Congyang 提交于
      The function virUnrefConnect() may call virReleaseConnect() to release
      the dest connection, and the function virReleaseConnect() will call
      conn->driver->close().
      
      So the function virUnrefConnect() should be surrounded by
      qemuDomainObjEnterRemoteWithDriver() and
      qemuDomainObjExitRemoteWithDriver() to prevent possible deadlock between
      two communicating libvirt daemons.
      
      See commit f0c8e1cb for further details.
      Signed-off-by: NWen Congyang <wency@cn.fujitsu.com>
      bda57661
  5. 20 1月, 2011 3 次提交
  6. 19 1月, 2011 15 次提交