1. 28 4月, 2015 40 次提交
    • M
      util: fix removal of callbacks in virCloseCallbacksRun · 29b3402b
      Michael Chapman 提交于
      The close callbacks hash are keyed by a UUID-string, but
      virCloseCallbacksRun was attempting to remove them by raw UUID. This
      patch ensures the callback entries are removed by UUID-string as well.
      
      This bug caused problems when guest migrations were abnormally aborted:
      
        # timeout --signal KILL 1 \
            virsh migrate example qemu+tls://remote/system \
              --verbose --compressed --live --auto-converge \
              --abort-on-error --unsafe --persistent \
              --undefinesource --copy-storage-all --xml example.xml
        Killed
      
        # virsh migrate example qemu+tls://remote/system \
            --verbose --compressed --live --auto-converge \
            --abort-on-error --unsafe --persistent \
            --undefinesource --copy-storage-all --xml example.xml
        error: Requested operation is not valid: domain 'example' is not being migrated
      Signed-off-by: NMichael Chapman <mike@very.puzzling.org>
      (cherry picked from commit fa2607d5)
      29b3402b
    • M
      qemu: fix race between disk mirror fail and cancel · 9a0e0d3f
      Michael Chapman 提交于
      If a VM migration is aborted, a disk mirror may be failed by QEMU before
      libvirt has a chance to cancel it. The disk->mirrorState remains at
      _ABORT in this case, and this breaks subsequent mirrorings of that disk.
      
      We should instead check the mirrorState directly and transition to _NONE
      if it is already aborted. Do the check *after* aborting the block job in
      QEMU to avoid a race.
      Signed-off-by: NMichael Chapman <mike@very.puzzling.org>
      (cherry picked from commit e5d729ba)
      9a0e0d3f
    • M
      qemu: fix error propagation in qemuMigrationBegin · 188e5367
      Michael Chapman 提交于
      If virCloseCallbacksSet fails, qemuMigrationBegin must return NULL to
      indicate an error occurred.
      Signed-off-by: NMichael Chapman <mike@very.puzzling.org>
      (cherry picked from commit 77ddd0bb)
      188e5367
    • M
      qemu: fix crash in qemuProcessAutoDestroy · 9b4dd2c7
      Michael Chapman 提交于
      The destination libvirt daemon in a migration may segfault if the client
      disconnects immediately after the migration has begun:
      
        # virsh -c qemu+tls://remote/system list --all
         Id    Name                           State
        ----------------------------------------------------
        ...
      
        # timeout --signal KILL 1 \
            virsh migrate example qemu+tls://remote/system \
              --verbose --compressed --live --auto-converge \
              --abort-on-error --unsafe --persistent \
              --undefinesource --copy-storage-all --xml example.xml
        Killed
      
        # virsh -c qemu+tls://remote/system list --all
        error: failed to connect to the hypervisor
        error: unable to connect to server at 'remote:16514': Connection refused
      
      The crash is in:
      
         1531 void
         1532 qemuDomainObjEndJob(virQEMUDriverPtr driver, virDomainObjPtr obj)
         1533 {
         1534     qemuDomainObjPrivatePtr priv = obj->privateData;
         1535     qemuDomainJob job = priv->job.active;
         1536
         1537     priv->jobs_queued--;
      
      Backtrace:
      
        #0  at qemuDomainObjEndJob at qemu/qemu_domain.c:1537
        #1  in qemuDomainRemoveInactive at qemu/qemu_domain.c:2497
        #2  in qemuProcessAutoDestroy at qemu/qemu_process.c:5646
        #3  in virCloseCallbacksRun at util/virclosecallbacks.c:350
        #4  in qemuConnectClose at qemu/qemu_driver.c:1154
        ...
      
      qemuDomainRemoveInactive calls virDomainObjListRemove, which in this
      case is holding the last remaining reference to the domain.
      qemuDomainRemoveInactive then calls qemuDomainObjEndJob, but the domain
      object has been freed and poisoned by then.
      
      This patch bumps the domain's refcount until qemuDomainRemoveInactive
      has completed. We also ensure qemuProcessAutoDestroy does not return the
      domain to virCloseCallbacksRun to be unlocked in this case. There is
      similar logic in bhyveProcessAutoDestroy and lxcProcessAutoDestroy
      (which call virDomainObjListRemove directly).
      Signed-off-by: NMichael Chapman <mike@very.puzzling.org>
      (cherry picked from commit 7578cc17)
      9b4dd2c7
    • P
      qemu: blockCopy: Pass adjusted bandwidth when called via blockRebase · fd270808
      Peter Krempa 提交于
      The block copy API takes the speed in bytes/s rather than MiB/s that was
      the prior approach in virDomainBlockRebase. We correctly converted the
      speed to bytes/s in the old API but we still called the common helper
      virDomainBlockCopyCommon with the unadjusted variable.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1207122
      (cherry picked from commit 3c6a72d5)
      fd270808
    • L
      virsh: blockCopy: Add missing jump on error path · 4fdd4d20
      Luyao Huang 提交于
      The overflow check for the bandwidth parameter did not jump to the
      cleanup label.
      
      Additionally virsh should use vshError instead of virReportError.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1206987Signed-off-by: NLuyao Huang <lhuang@redhat.com>
      (cherry picked from commit 390f218b)
      4fdd4d20
    • S
      qemu: end the job when try to blockcopy to non-file destination · 52ef86af
      Shanzhi Yu 提交于
      Blockcopy to non-file destination is not supported according the code,
      but a 'goto endjob' is missed after checking the destination.
      
      This leads to calling drive-mirror with wrong parameters.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1206406Signed-off-by: NShanzhi Yu <shyu@redhat.com>
      Signed-off-by: NJán Tomko <jtomko@redhat.com>
      (cherry picked from commit c5fbad66)
      52ef86af
    • W
      nodeinfo: Increase the num of CPU thread siblings to a larger value · cb4fd344
      Wei Huang 提交于
      Current libvirt can only handle up to 1023 bytes when it
      reads Linux sysfs topology/thread_siblings. This isn't enough for
      Linux distributions that support a large value. This patch fixes
      the problem by using VIR_ALLOC()/VIR_FREE(), instead of using a
      fixed-size (1024) local char array. In the meanwhile
      SYSFS_THREAD_SIBLINGS_LIST_LENGTH_MAX is increased to 8192 which
      should be large enough for a foreseeable future.
      Signed-off-by: NWei Huang <wei@redhat.com>
      (cherry picked from commit c13de016)
      cb4fd344
    • E
      relaxng: allow : in /dev/disk/by-path names · 0b635e15
      Eric Blake 提交于
      On IRC, Hydrar pointed a problem where 'virsh edit' failed on
      his domain created through an ISCSI pool managed by virt-manager,
      all because the XML included a block device with colons in the
      name.
      
      * docs/schemas/basictypes.rng (absFilePath): Add colon as safe.
      * tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.xml: New file.
      * tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.args: Likewise.
      * tests/qemuxml2argvtest.c (mymain): Test it.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      (cherry picked from commit dfc70875)
      0b635e15
    • J
      qemu: Give hint about -noTSX CPU model · a7c8b30e
      Jiri Denemark 提交于
      Because of the microcode update to Haswell/Broadwell CPUs, existing
      domains using these CPUs may fail to start even though they used to run
      just fine. To help users solve this issue we try to suggest switching to
      -noTSX variant of the CPU model:
      
          virsh # start cd
          error: Failed to start domain cd
          error: unsupported configuration: guest and host CPU are not
          compatible: Host CPU does not provide required features: rtm, hle;
          try using 'Haswell-noTSX' CPU model
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      (cherry picked from commit 53c8062f)
      a7c8b30e
    • A
      build: fix race when creating the cpu_map.xml symlink · f046531e
      Amy Fong 提交于
      In some circumstances where the build tree differs from the source,
      libvirt's compile will try to create the symlink for cpu_map.xml before
      creating the directory $(abs_builddir)/cpu:
      
      'src/cpu/cpu_map.xml': No such file or directory'
      
      Do not create the symlink, it is no longer needed after
      commit e562e82f
          Load CPU map from builddir when run uninstalled
      Signed-off-by: NAmy Fong <amy.fong@windriver.com>
      Signed-off-by: NJán Tomko <jtomko@redhat.com>
      (cherry picked from commit 237ffd1b)
      f046531e
    • G
      Don't validata filesystem target type · a5ebbe9c
      Guido Günther 提交于
      When using QEMU's 9pfs the target "dir" element is not necessarily an
      absolute path but merely an arbitrary identifier. So validation in that
      case currently fails with the misleading
      
         $ virt-xml-validate /tmp/test.xml
         Relax-NG validity error : Extra element devices in interleave
         /tmp/test.xml:24: element devices: Relax-NG validity error : Element domain failed to validate content
         /tmp/test.xml fails to validate
      
      (cherry picked from commit db1edae8)
      a5ebbe9c
    • J
      Document behavior of compat when creating qcow2 volumes · 6fee5eaa
      Ján Tomko 提交于
      Commit bab2eda6 changed the behavior for missing compat attribute,
      but failed to update the documentation.
      
      Before, the option was omitted from qemu-img command line and the
      qemu-img default was used. Now we always specify the compat value
      and the default is 0.10.
      
      Reported by Christophe Fergeau
      https://bugzilla.gnome.org/show_bug.cgi?id=746660#c4
      
      (cherry picked from commit 7c8ae42d)
      6fee5eaa
    • J
      Fix typo in error message · 6d1430ec
      Ján Tomko 提交于
      by rewriting it completely from:
      error: unsupported configuration: virtio only support device address
      type 'PCI'
      
      to:
      
      error: unsupported configuration: virtio disk cannot have an address of type
      drive
      
      Since we now support CCW addresses as well.
      
      (cherry picked from commit 68545ea6)
      6d1430ec
    • L
      qemu: change accidental VIR_WARNING back to VIR_DEBUG · b1972ce5
      Laine Stump 提交于
      While debugging the support for responding to qemu RX_FILTER_CHANGED
      events, I had changed the "ignoring this event" log message from
      VIR_DEBUG to VIR_WARN, but forgot to change it back before
      pushing. Since many guest OSes make enough changes to multicast lists
      and/or promiscuous mode settings to trigger this message, it's
      starting to show up as a red herring in bug reports.
      
      (cherry picked from commit dae3e246)
      b1972ce5
    • L
      conf: fix parsing of NUMA settings in VM status XML · 28575e75
      Luyao Huang 提交于
      Commit 5bba61fd changed the XPath strings to be absolute when parsing
      the VM NUMA configuration. Unfortunately the <domain> element is not a
      top level element when parsing the domain status XML thus the absolute
      XPath string doesn't match.
      
      Use the relative string so that the <numa> settings are not lost.
      Signed-off-by: NLuyao Huang <lhuang@redhat.com>
      (cherry picked from commit d75e23bb)
      28575e75
    • M
      qemu: skip precreation of network disks · a883fb9c
      Michael Chapman 提交于
      Commit cf54c606 introduced the ability
      to create missing storage volumes during migration. For network disks,
      however, we may not necessarily be able to detect whether they already
      exist -- there is no straight-forward way to map the disk to a storage
      volume, and even if there were it's possible no configured storage pool
      actually contains the disk.
      
      It is better to assume the network disk exists in this case, rather than
      aborting the migration completely. If the volume really is missing, QEMU
      will generate an appropriate error later in the migration.
      Signed-off-by: NMichael Chapman <mike@very.puzzling.org>
      (cherry picked from commit a1b18051)
      a883fb9c
    • L
      qemu: do not overwrite the error in qemuDomainObjExitMonitor · 93c5841e
      Luyao Huang 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1196934
      
      When qemu exits during startup, libvirt includes the error from
      /var/log/libvirt/qemu/vm.log in the error message:
      
      $ virsh start test3
      error: Failed to start domain test3
      error: internal error: early end of file from monitor: possible problem:
      2015-02-27T03:03:16.985494Z qemu-kvm: -numa memdev is not supported by
      machine rhel6.5.0
      
      The check for domain liveness added to qemuDomainObjExitMonitor
      in commit dc2fd51f sometimes overwrites this error:
      $ virsh start test3
      error: Failed to start domain test3
      error: operation failed: domain is no longer running
      
      Fix the check to only report an error if there is none set.
      Signed-off-by: NLuyao Huang <lhuang@redhat.com>
      Signed-off-by: NJán Tomko <jtomko@redhat.com>
      (cherry picked from commit 4f068209)
      93c5841e
    • J
      libxl: Don't overwrite errors from xenconfig · bb00c1f9
      Jim Fehlig 提交于
      When converting domXML from native, the libxl driver was overwriting
      useful errors from the xenconfig parsing code with a useless, generic
      error.  E.g. "internal error: parsing xm config failed" vs
      "internal error: config value usbdevice was malformed".  Remove the
      redundant (and useless) error reporting in the libxl driver.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      (cherry picked from commit bd235cd8)
      bb00c1f9
    • L
      util: more verbose error when failing to create macvtap device · b10e27ad
      Laine Stump 提交于
      Investigation of a problem with creating passthrough macvtap devices
      (https://bugzilla.redhat.com/show_bug.cgi?id=1185501) has shown that
      this slightly more verbose failure message is useful. In particular,
      the mac address can be used to determine the domain. You could also
      figure this out by looking at preceding messages in a debug log, but
      this gets it in a single place.
      
      (cherry picked from commit 72423df9)
      b10e27ad
    • P
      qemu: hotplug: Use checker function to check if disk is empty · 2c3aba71
      Peter Krempa 提交于
      (cherry picked from commit e7974b4f)
      2c3aba71
    • P
      qemu: driver: Fix cold-update of removable storage devices · 7d11e8de
      Peter Krempa 提交于
      Only selected fields from the disk source were copied when cold updating
      source in a CDROM drive. When such drive was backed by a network file
      this resulted into corruption of the definition:
      
          <disk type='network' device='cdrom'>
            <driver name='qemu' type='raw' cache='none'/>
            <source protocol='gluster' name='gluster-vol1(null)'>
              <host name='localhost'/>
            </source>
            <target dev='vdc' bus='virtio'/>
            <readonly/>
            <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
          </disk>
      
      Update the whole source instead of cherry-picking elements.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1166024
      (cherry picked from commit d0dc6c03)
      7d11e8de
    • E
      qemu: Check for negative port values in network drive configuration · b41d99b7
      Erik Skultety 提交于
      We interpret port values as signed int (convert them from char *),
      so if a negative value is provided in network disk's configuration,
      we accept it as valid, however there's an 'unknown cause' error raised later.
      This error is only accidental because we return the port value in the return code.
      This patch adds just a minor tweak to the already existing check so we
      reject negative values the same way as we reject non-numerical strings.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1163553
      (cherry picked from commit 84646165)
      b41d99b7
    • E
      virsh: fix report of non-active commit completion · 8ff41608
      Eric Blake 提交于
      Commit f182da20 (v1.2.6) caused a slight regression in virsh
      reporting of a non-active block job; where it used to state
      "Commit complete", it now states "Now in synchronized phase".
      But the synchronized phase is only possible for an active commit.
      
      For a reproducer, I created a chain 'a <- b <- c <- d <- e' and
      ran virsh blockcommit $dom vda --top c --base a --verbose --wait
      
      * tools/virsh-domain.c (cmdBlockCommit): Synchronized phase is
      only possible on active commits.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      (cherry picked from commit ceec58ac)
      8ff41608
    • Z
      util: don't fail if no PortData is found while getting migrateData · b6fcd7ba
      zhang bo 提交于
      Introduced by f6a2f97e
      
      Problem Description:
      After multiple times of migrating a domain, which has an ovs interface with no portData set,
      with non-shared disk, nbd ports got overflowed.
      
      The steps to reproduce the problem:
      1 define and start a domain with its network configured as:
          <interface type='bridge'>
                <source bridge='br0'/>
                <virtualport type='openvswitch'>
                </virtualport>
                <model type='virtio'/>
                <driver name='vhost' queues='4'/>
          </interface>
      2 do not set the network's portData.
      3 migrate(ToURI2) it with flag 91(1011011), which means:
        VIR_MIGRATE_LIVE
        VIR_MIGRATE_PEER2PEER
        VIR_MIGRATE_PERSIST_DEST
        VIR_MIGRATE_UNDEFINE_SOURCE
        VIR_MIGRATE_NON_SHARED_DISK
      4 migrate success, but we got an error log in libvirtd.log:
        error : virCommandWait:2423 : internal error: Child process (ovs-vsctl --timeout=5 get Interface
        vnet1 external_ids:PortData) unexpected exit status 1: ovs-vsctl: no key "PortData" in Interface
        record "vnet1" column external_ids
      5 migrate it back, migrate it , migrate it back, .......
      6 nbd port got overflowed.
      
      The reasons for the problem is :
      1 virNetDevOpenvswitchGetMigrateData() takes it as wrong if no portData is available for  the ovs
       interface of a domain. (We think it's not appropriate, as portData is just OPTIONAL)
      2 in func qemuMigrationBakeCookie(), it fails in qemuMigrationCookieAddNetwork(), and returns with -1.
       qemuMigrationCookieAddNBD() is not called thereafter, and mig->nbd is still NULL.
      3 However, qemuMigrationRun() just *WARN* if qemuMigrationBakeCookie() fails, migration still successes.
       cookie is NULL, it's not baked on the src side.
      4 On the destination side, it would alloc a port first and then free the nbd port in COOKIE.
       But the cookie is NULL due to qemuMigrationCookieAddNetwork() failure at src side. thus the nbd port
       is not freed.
      
      In this patch, we add "--if-exists" option to make ovs-vsctl not raise error if there's no portData available.
      Further more, because portData may be NULL in the cookie at the dest side, check it before setting portData.
      Signed-off-by: NZhou Yimin <zhouyimin@huawei.com>
      Signed-off-by: NZhang Bo <oscar.zhangbo@huawei.com>
      (cherry picked from commit 25df57db)
      b6fcd7ba
    • J
      Clarify the meaning of version in redirdev filters · be74ebcc
      Ján Tomko 提交于
      The version attribute in redirdev filters refers to the revision
      of the device, not the version of the USB protocol.
      
      Explicitly state that this is not the USB protocol and remove references
      to those round version numbers that resemble USB protocol versions.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1177237
      (cherry picked from commit 76a2a5ce)
      be74ebcc
    • J
      xenapi: Resolve Coverity REVERSE_INULL · ac471389
      John Ferlan 提交于
      Coverity notes in xenapiDomainGetXMLDesc that 'vms' is dereferenced
      a few times before a "if (vms) xen_vm_set_free(vms);" call is made.
      Since we'd exit out much sooner if the fetch of the vms failed, just
      remove the unnecessary "if (vms)" check.
      
      (cherry picked from commit eab968c7)
      ac471389
    • J
      xenapi: Resolve Coverity REVERSE_INULL · 2cb4b820
      John Ferlan 提交于
      Coverity complains that "net_set" is compared to NULL before calling
      xen_network_set_free, but used rather liberally before that.  While
      I was looking at the code I also noted that if the virAsprintfQuiet
      fails, then we leak our structures - so I added those too.
      
      (cherry picked from commit 6da29e0f)
      2cb4b820
    • J
      xenapi: Resolve Coverity NULL_RETURNS · e4afc2a2
      John Ferlan 提交于
      Coverity points out that the return from virDomainDefParseString is
      not checked in xenapiDomainCreateXML like it should be which could
      end up in a NULL pointer dereference
      
      (cherry picked from commit b193a1d6)
      e4afc2a2
    • J
      xenapi: Resolve Coverity NO_EFFECT · 2f26dccb
      John Ferlan 提交于
      Coverity points out that check (def->uuid) has no effect since it's not
      a pointer, rather an array of characters.   Just remove the extranous check.
      
      (cherry picked from commit 467c9059)
      2f26dccb
    • J
      xenapi: Resolve Coverity FORWARD_NULL · 2213707b
      John Ferlan 提交于
      Since inception.  Coverity complains that the code checks "(record ==
      NULL && !session->ok)", but doesn't check (record != NULL) before
      dereferencing at "record->is_a_template"
      
      (cherry picked from commit 500d77f1)
      2213707b
    • M
      RNG: Allow multiple parameters to be passed to an interface filter · 193b0573
      Michal Privoznik 提交于
      Our code supports that for ages. When using a <filterref/> to an
      <interface/> several parameters can be passed to the filter. Later,
      when building firewall rules, parameters are substituted for their
      values. However, our RNG schema allowed only one parameter to be
      passed.
      Reported-by: NBrian Rak <brak@gameservers.com>
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      (cherry picked from commit 6cc5080a)
      193b0573
    • M
      domain_conf: fix crash in virDomainObjListFindByUUIDInternal · 3db520d9
      Michael Chapman 提交于
      If a domain object is being removed and looked up concurrently we must
      ensure we unlock the object before unreferencing it, since the latter
      might free the object.
      
      The flaw was introduced in commit feb1a4d7.
      Signed-off-by: NMichael Chapman <mike@very.puzzling.org>
      (cherry picked from commit 616003d6)
      3db520d9
    • M
      {domain, network}_conf: disable autostart when deleting config · 2206ec86
      Michael Chapman 提交于
      Undefining a running, autostarted domain removes the autostart link, but
      dom->autostart is not cleared. If the domain is subsequently redefined,
      libvirt thinks it is already autostarted and will not create the link
      even if requested:
      
        # virsh dominfo example | grep Autostart
        Autostart:      enable
      
        # ls /etc/libvirt/qemu/autostart/example.xml
        /etc/libvirt/qemu/autostart/example.xml
      
        # virsh undefine example
        Domain example has been undefined
      
        # virsh define example.xml
        Domain example defined from example.xml
      
        # virsh dominfo example | grep Autostart
        Autostart:      enable
      
        # virsh autostart example
        Domain example marked as autostarted
      
        # ls /etc/libvirt/qemu/autostart/example.xml
        ls: cannot access /etc/libvirt/qemu/autostart/example.xml: No such file or directory
      
      This commit ensures dom->autostart is cleared whenever the config and
      autostart link (if present) are removed.
      
      The bridge network driver cleared this flag itself in networkUndefine.
      This commit moves this into virNetworkDeleteConfig for symmetry with
      virDomainDeleteConfig, and to ensure it is not missed in future network
      drivers.
      Signed-off-by: NMichael Chapman <mike@very.puzzling.org>
      (cherry picked from commit a6ec4f47)
      2206ec86
    • L
      qemu: Remove unnecessary virReportError on networkGetNetworkAddress return · 5f3db971
      Luyao Huang 提交于
      Error messages are already set in all code paths returning -1 from
      networkGetNetworkAddress, so we don't want to overwrite them.
      Signed-off-by: NLuyao Huang <lhuang@redhat.com>
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      (cherry picked from commit 64595431)
      5f3db971
    • M
      virQEMUCapsInitQMP: Don't dispose locked @vm · 55576d35
      Michal Privoznik 提交于
      When creating qemu capabilities, a dummy virDomainObj is created just
      because our monitor code expects that. However, the object is created
      locked already. Then, under cleanup label, we simply unref the object
      which results in whole domain object to be disposed. The object lock
      is destroyed subsequently, but hey - it's still locked:
      
      ==24845== Thread #14's call to pthread_mutex_destroy failed
      ==24845==    with error code 16 (EBUSY: Device or resource busy)
      ==24845==    at 0x4C3024E: pthread_mutex_destroy (in /usr/lib64/valgrind/vgpreload_helgrind-amd64-linux.so)
      ==24845==    by 0x531F72E: virMutexDestroy (virthread.c:83)
      ==24845==    by 0x5302977: virObjectLockableDispose (virobject.c:237)
      ==24845==    by 0x5302A89: virObjectUnref (virobject.c:265)
      ==24845==    by 0x1DD37866: virQEMUCapsInitQMP (qemu_capabilities.c:3397)
      ==24845==    by 0x1DD37CC6: virQEMUCapsNewForBinary (qemu_capabilities.c:3481)
      ==24845==    by 0x1DD381E2: virQEMUCapsCacheLookup (qemu_capabilities.c:3609)
      ==24845==    by 0x1DD30F8A: virQEMUCapsInitGuest (qemu_capabilities.c:744)
      ==24845==    by 0x1DD31889: virQEMUCapsInit (qemu_capabilities.c:1020)
      ==24845==    by 0x1DD7DD36: virQEMUDriverCreateCapabilities (qemu_conf.c:888)
      ==24845==    by 0x1DDC57C0: qemuStateInitialize (qemu_driver.c:803)
      ==24845==    by 0x53DC743: virStateInitialize (libvirt.c:777)
      ==24845==
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      (cherry picked from commit 954427c3)
      55576d35
    • C
      qemu: fix memory leak in qemuAgentGetFSInfo · 0f9ee860
      Chen Fan 提交于
      in virDomainFSInfoFree(), don't free the virDomainFSInfo data.
      
      ==10670== 80 bytes in 2 blocks are definitely lost in loss record 576 of 793
      ==10670==    at 0x4A06BC3: calloc (vg_replace_malloc.c:618)
      ==10670==    by 0x509DEBD: virAlloc (viralloc.c:144)
      ==10670==    by 0x19FBD558: qemuAgentGetFSInfo (qemu_agent.c:1837)
      ==10670==    by 0x1A03CF91: qemuDomainGetFSInfo (qemu_driver.c:19238)
      Signed-off-by: NChen Fan <chen.fan.fnst@cn.fujitsu.com>
      (cherry picked from commit f276b36d)
      0f9ee860
    • P
      docs: add a note that spice channel is usable only with spice graphics · a2d4e782
      Pavel Hrdina 提交于
      To prevent a confusion about missing chardev argument in qemu
      command line add a note about that behavior into documentation.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1129198Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      (cherry picked from commit 242e8c54)
      a2d4e782
    • J
      locking: Fix flags in virLockManagerLockDaemonNew · a065bb0f
      Jiri Denemark 提交于
      virLockManager*New APIs are never called with
      VIR_LOCK_MANAGER_USES_STATE. Moreover, lockd driver does not maintain
      any state that would need to be transferred during migration and thus it
      should not mention VIR_LOCK_MANAGER_USES_STATE at all.
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      (cherry picked from commit 6beb75d9)
      a065bb0f
    • P
      tests: fix qemuxml2argvtest to be arch independent · bb1018f6
      Pavel Hrdina 提交于
      Commit 5aee81a0 introduced a new test for disk-serial.  The test fails
      on i686 arch because there is no need to add "-cpu qemu32" to command
      line.  To fix the test update emulator in XML to "/usr/bin/qemu" so we
      don't add the "-cpu qemu32" to command while running the test on i686 or
      x86_64 host.
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      (cherry picked from commit c2851781)
      bb1018f6