- 28 4月, 2015 40 次提交
-
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 Peter Krempa 提交于
(cherry picked from commit e7974b4f)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 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)
-
由 Martin Kletzander 提交于
Commit 3e4b783e fixed an issue with RNG schema where this address type was missing, this commit adds a test for it. Signed-off-by: NMartin Kletzander <mkletzan@redhat.com> (cherry picked from commit 6b22e0b5)
-
由 Michal Privoznik 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1195660 There's been a bug report appearing on the qemu-devel list, that libvirt is unable to pass spaces in disk serial number [1]. Not only our RNG schema forbids that, the code is not prepared either. However, with a bit of escaping (if needed) we can allow spaces there. 1: https://lists.gnu.org/archive/html/qemu-devel/2015-02/msg04041.htmlSigned-off-by: NMichal Privoznik <mprivozn@redhat.com> (cherry picked from commit 5aee81a0)
-
由 Erik Skultety 提交于
According to the POSIX standard, off_t (returned by lseek) is defined as signed integral type no shorter than int. Because our offset variable is defined as unsigned long long, the original check was passed successfully if UINT64_MAX had been used as offset value, due to implicit conversion. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1177219 (cherry picked from commit 3fde7986)
-
由 Erik Skultety 提交于
According to docs, we only support 2 link states for an interface up/down, 'up' being the default state if link state is unspecified in domain's XML, so the message when no link state is provided should be changed a little. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1141119 (cherry picked from commit d9c7f014)
-
由 Shanzhi Yu 提交于
When the domain's source disk type is network, if source protocol is rbd or sheepdog, the 'if().. break' will end the current case, which lead to miss check the driver type is raw or qcow2. Libvirt will allow to create internal snapshot for a running domain with raw format disk which based on rbd storage. While both protocols support internal snapshots of the disk qemu is not able to use it as it requires some place to store the memory image. The check if the disk is backed by a qcow2 image needs to be executed always. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1179533Signed-off-by: NShanzhi Yu <shyu@redhat.com> (cherry picked from commit f7c1410b)
-
由 Michal Privoznik 提交于
We have this function networkObjFromNetwork() which for given virNetworkPtr tries to find corresponding virNetworkObjPtr. If no object is found, a nice error message is printed out: no network with matching uuid '$uuid' ($name) Let's improve the error message produced by networkLookupByUUID to follow that logic. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> (cherry picked from commit bf1afdd4)
-
由 Michal Privoznik 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1197600 So, libvirt uses pid file to track pid of started qemus. Whenever a domain is started, its pid is put into corresponding pid file. The pid file path is generated based on domain name and stored into domain object internals. However, it's not stored in the status XML and therefore lost on daemon restarts. Hence, later, when domain is being shut down, the daemon does not know which pid file to unlink, and the correct pid file is left behind. To avoid this, lets generate the pid file path again in qemuProcessReconnect(). Reported-by: NLuyao Huang <lhuang@redhat.com> Signed-off-by: NMichal Privoznik <mprivozn@redhat.com> (cherry picked from commit 63889e0c)
-
由 Prerna Saxena 提交于
Signed-off-by: NPrerna Saxena <prerna@linux.vnet.ibm.com> (cherry picked from commit 8672a1e4)
-
由 Prerna Saxena 提交于
Acked-by: NJán Tomko <jtomko@redhat.com> Signed-off-by: NPrerna Saxena <prerna@linux.vnet.ibm.com> (cherry picked from commit 0afa6be8)
-
由 Peter Krempa 提交于
In commit edd1295e I've introduced an XML element that allows to configure state of the network interface link. Somehow the RNG schema hunk ended up in a weird place in the network schema definition. Move it to the right place and add a test case. Note that the link state is set up via the monitor at VM startup so I originally didn't think of adding a test case. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1173468 (cherry picked from commit 8eb907b8)
-
由 Martin Kletzander 提交于
Since adding the support for scheduler policy settings in commit 8680ea97, there are two enums with the same information. That was caused by rewriting the patch since first draft. Find out thanks to clang, but there was no impact whatsoever. Signed-off-by: NMartin Kletzander <mkletzan@redhat.com> (cherry picked from commit 2fd5880b)
-
由 Martin Kletzander 提交于
The problem here was that when opening a channel, we were checking whether the channel given is alias (can't be NULL for running domain) or it's name, which can be NULL (for example with spicevmc). In case of such domain qemuDomainOpenChannel() made the daemon crash. STREQ_NULLABLE() is safe to use since the code in question is wrapped in "if (name)" and is more readable, so use that instead of checking for non-NULL "vm->def->channels[i]->target.name". Signed-off-by: NMartin Kletzander <mkletzan@redhat.com> (cherry picked from commit b3ea0a8f)
-
由 John Ferlan 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=921426 Add to the man page a more complete description of what exactly the command expects on input and will return on output based on what is currently supported. Perhaps missing findPoolSources implementations are backends for sheepdog and rbd. Also missing any backend is zfs. (cherry picked from commit 567bd0fa)
-
由 John Ferlan 提交于
The virStorageBackendISCSIFindPoolSources API only needs the 'host' name in order to discover iSCSI pools, it returns the various device paths. On input, it's also possible to further restrict a search by providing the port attribute for the host element and the (undocumented) initiator element. For example: $ virsh find-storage-pool-sources-as iscsi error: Failed to find any iscsi pool sources error: invalid argument: hostname and device path must be specified for iscsi sources $ virsh find-storage-pool-sources-as iscsi 192.168.122.1 <sources> <source> <host name='192.168.122.1' port='3260'/> <device path='iqn.2013-12.com.example:iscsi-chap-lclpool'/> </source> </sources> (cherry picked from commit 30f69ae8)
-
由 John Ferlan 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1070695 Modify the virsh man page to more accurately describe which values are set by the virsh setmem and displayed by the virsh memtune or dominfo based on the setmem command results. (cherry picked from commit 69db32f9)
-
由 Erik Skultety 提交于
Our documentation isn't 100% clear about hostdev 'managed' attribute usage, because it only makes sense to use it with PCI devices, yet we format this attribute to all hostdev devices. By adding a note into the docs, we can possibly avoid confusion from customer's side and also avoid a solution using ternary logic. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1155887 (cherry picked from commit ccfe9e48)
-