- 21 11月, 2014 1 次提交
-
-
由 Peter Krempa 提交于
When creating a disk image snapshot the libvirt code would blindly copy the parents label to the newly created image. This runs into problems when you start a VM from an image hosted on NFS (or other storage system that doesn't support selinux labels) and the snapshot destination is on a storage system that does support selinux labels. Libvirt's code in that case generates a different security label for the image hosted on NFS. This label is valid only for NFS images and doesn't allow access in case of a locally stored image. To fix this issue libvirt needs to refrain from copying security information in cases where the default domain seclabel is a better choice. This patch repurposes the now unused @force argument of virStorageSourceInitChainElement to denote whether a copy of the security labelling stuff should be attempted or not. This allows to fine-control the copy operation for cases where we need to keep the label of the old disk vs. the cases where we need to keep the label unset to use the default domain imagelabel. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1151718
-
- 20 11月, 2014 14 次提交
-
-
由 Eric Blake 提交于
Commit c0e70221 breaks on a machine that lacks dbus headers: In file included from util/virdbus.c:24:0: util/virdbuspriv.h:31:3: error: unknown type name 'dbus_int16_t' * src/util/virdbuspriv.h (DBusBasicValue): Only provide fallback when dbus is compiled. Signed-off-by: NEric Blake <eblake@redhat.com>
-
由 Eric Blake 提交于
On 32-bit platforms with old gcc (hello RHEL 5 gcc 4.1.2), the build fails with: virsh-domain.c: In function 'cmdBlockCopy': virsh-domain.c:2172: warning: comparison is always false due to limited range of data type Adjust the code to silence the warning. * tools/virsh-domain.c (cmdBlockCopy): Pacify RHEL 5 gcc. Signed-off-by: NEric Blake <eblake@redhat.com>
-
由 John Ferlan 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1152382 When libvirt create's the vport (VPORT_CREATE) for the vHBA, there isn't enough "time" between the creation and the running of the following backend->refreshPool after a backend->startPool in order to find the LU's. Population of LU's happens asynchronously when udevEventHandleCallback discovers the "new" vHBA port. Creation of the infrastructure by udev is an iterative process creating and discovering actual storage devices and adjusting the environment. Because of the time it takes to discover and set things up, the backend refreshPool call done after the startPool call will generally fail to find any devices. This leaves the newly started pool appear empty when querying via 'vol-list' after startup. The "workaround" has always been to run pool-refresh after startup (or any time thereafter) in order to find the LU's. Depending on how quickly run after startup, this too may not find any LUs in the pool. Eventually though given enough time and retries it will find something if LU's exist for the vHBA. This patch adds a thread to be executed after the VPORT_CREATE which will attempt to find the LU's without requiring the external run of refresh-pool. It does this by waiting for 5 seconds and searching for the LU's. If any are found, then the thread completes; otherwise, it will retry once more in another 5 seconds. If none are found in that second pass, the thread gives up. Things learned while investigating this... No need to try and fill the pool too quickly or too many times. Over the course of creation, the udev code may 'add', 'change', and 'delete' the same device. So if the refresh code runs and finds something, it may display it only to have a subsequent refresh appear to "lose" the device. The udev processing doesn't seem to have a way to indicate that it's all done with the creation processing of a newly found vHBA. Only the Lone Ranger has silver bullets to fix everything.
-
由 John Ferlan 提交于
Fix a problem in the getBlockDevice and processLU where retval initialized to zero causing some failures to erroneously continue through to the virStorageBackendSCSINewLun with an attempt to find a path for "/dev/(null)". This would fail approximately 10 seconds later with debug message: virStorageBackendSCSINewLun:203 : No stable path found for '/dev/(null)' in '/dev/disk/by-path' The root cause of the issue is for many /sys/bus/scsi/devices/<lun path> there is no "block*" device found for the vHBA's, where "<lun path>" are the various paths created for the vHBA, such as "17:0:0:0", "17:0:1:0", "17:0:2:0", "17:0:3:0", etc. If the block device isn't found, then the directory should just be ignored rather than attempting to process it. The bug was that in getBlockDevice the assumption was "block" would exist and either getNewStyleBlockDevice or getOldStyleBlockDevice would fill in @block_device. However, if 'block*' doesn't exist, then the code returned NULL for block_device *and* a good (zero) retval value. This caused the processLU code to attempt the virStorageBackendSCSINewLun which failed "at some point in time" in the future. After this change - on test system the refresh-pool didn't have a noticable pause of about 20 seconds - it completed within a second since no longer was there an attempt/need to find "/dev/(null)". Additionally, the virStorageBackendSCSIFindLU's shouldn't be declaring found unless the processLU actually returns success. This will be important in the followup patch which relies on whether a LU was found.
-
由 Nehal J Wani 提交于
The libvirt-libvirt.html file is no longer generated so should not be referenced by the Makefile.am
-
由 Eric Blake 提交于
Compilation on a RHEL 5 host failed, due to the older dbus headers present on that machine, and triggered by commit 2aa167ca: util/virdbus.c: In function 'virDBusMessageIterDecode': util/virdbus.c:952: error: 'DBusBasicValue' undeclared (first use in this function) * m4/virt-dbus.m4 (LIBVIRT_CHECK_DBUS): Check for DBusBasicValue. * src/util/virdbuspriv.h (DBusBasicValue): Provide fallback. Signed-off-by: NEric Blake <eblake@redhat.com>
-
由 Giuseppe Scrivano 提交于
getsockopt(sock->fd, SOL_SOCKET, SO_PEERCRED, ...) sets the pid to 0 when the process that opens the connection is in another container. Signed-off-by: NGiuseppe Scrivano <gscrivan@redhat.com>
-
由 Eric Blake 提交于
Commit dc33e6e4 caused older platforms like Fedora 20 to emit scary log messages at startup: 2014-11-19 23:12:58.800+0000: 28906: error : virCommandWait:2532 : internal error: Child process (/usr/sbin/iptables -w -L -n) unexpected exit status 2: iptables v1.4.19.1: unknown option "-w" Try `iptables -h' or 'iptables --help' for more information. Since we are probing and expect to handle the case where -w is not supported, we should not let virCommand log it as an error. * src/util/virfirewall.c (virFirewallCheckUpdateLock): Handle non-zero status ourselves. Signed-off-by: NEric Blake <eblake@redhat.com>
-
由 Jiri Denemark 提交于
Oops, I forgot to squash one more instance of the same check in the previous commit (v1.2.10-144-g52691f99). https://bugzilla.redhat.com/show_bug.cgi?id=1147331Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
-
由 Erik Skultety 提交于
When a block{pull, copy, commit} is aborted via keyboard interrupt, the job is properly canceled followed by proper error message. However, when the job receives an abort from another client connected to the same domain, the error message incorrectly indicates that a blockjob has been finished successfully, though the abort request took effect. This patch introduces a new blockjob abort handler, which is registered when the client calls block{copy,commit,pull} routine, providing its caller the status of the finished blockjob. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1135442
-
由 Jiri Denemark 提交于
Any attempt to start a tunnelled migration with libvirtd that supports RDMA migration (specifically commit v1.2.8-226-ged22a474) crashes libvirtd on the destination host. The crash is inevitable because qemuMigrationPrepareAny is always called with NULL protocol in case of tunnelled migration. https://bugzilla.redhat.com/show_bug.cgi?id=1147331Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
-
由 Eric Blake 提交于
Reported in https://bugzilla.redhat.com/show_bug.cgi?id=1165827; dash complains: checking for pkcheck... /usr/bin/pkcheck checking whether pkcheck supports uid value... yes ./configure: 63906: test: xno: unexpected operator checking for dtrace... no * configure.ac: Use '=' not '==' in test. Signed-off-by: NEric Blake <eblake@redhat.com>
-
由 Michal Privoznik 提交于
As discussed on the upstream list, it's better not to make this kind of predictions in libvirt. It may happen that qemu learns how to enable OVMF on other architectures too and we shouldn't try to chase that. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
Currently, we are whitelisting architectures, that we know how to run OVMF on. So far, only x86_64 was enabled. However, looking at qemu code, the same commandline can be used to enable OVMF for armv7l and aarch64. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 19 11月, 2014 7 次提交
-
-
由 Eric Blake 提交于
I noticed this while working on qemuDomainGetBlockInfo. Assigning a bool value to an int variable compiles fine, but raises red flags on the maintenance front as it becomes too easy to assign -1 or 2 or any other non-bool value to the same variable. * cfg.mk (sc_prohibit_int_assign_bool): New rule. * src/conf/snapshot_conf.c (virDomainSnapshotRedefinePrep): Fix offenders. * src/qemu/qemu_driver.c (qemuDomainGetBlockInfo) (qemuDomainSnapshotCreateXML): Likewise. * src/test/test_driver.c (testDomainSnapshotAlignDisks): Likewise. * src/util/vircgroup.c (virCgroupSupportsCpuBW): Likewise. * src/util/virpci.c (virPCIDeviceBindToStub): Likewise. * src/util/virutil.c (virIsCapableVport): Likewise. * tools/virsh-domain-monitor.c (cmdDomMemStat): Likewise. * tools/virsh-domain.c (cmdBlockResize, cmdScreenshot) (cmdInjectNMI, cmdSendKey, cmdSendProcessSignal) (cmdDetachInterface): Likewise. Signed-off-by: NEric Blake <eblake@redhat.com>
-
由 Eric Blake 提交于
Use of an 'int' to represent a 'bool' value is confusing. Just because dbus made the mistake of cementing their 4-byte wire format of dbus_bool_t into their API doesn't mean we have to repeat the mistake. With a little bit of finesse, we can guarantee that we provide a large-enough value to the DBus code, while still copying only the relevant one-byte bool to the client code, and isolate the rest of our code base from the DBus stupidity. * src/util/virdbus.c (GET_NEXT_VAL): Add parameter. (virDBusMessageIterDecode): Adjust all clients. * src/util/virpolkit.c (virPolkitCheckAuth): Use nicer type. * tests/virdbustest.c (testMessageSimple, testMessageStruct): Test new behavior. Signed-off-by: NEric Blake <eblake@redhat.com>
-
由 Chen Hanxiao 提交于
Signed-off-by: NChen Hanxiao <chenhanxiao@cn.fujitsu.com>
-
由 Yohan BELLEGUIC 提交于
This function returned non-inactive domains instead of active domains. This broke virConnectNumOfDefinedDomains() and virConnectListDefinedDomains() functions.
-
由 Anirban Chakraborty 提交于
Ethernet interfaces in libvirt currently do not support bandwidth setting. For example, following xml file for an interface will not apply these settings to corresponding qdiscs. <interface type="ethernet"> <mac address="02:36:1d:18:2a:e4"/> <model type="virtio"/> <script path=""/> <target dev="tap361d182a-e4"/> <bandwidth> <inbound average="984" peak="1024" burst="64"/> <outbound average="2000" peak="2048" burst="128"/> </bandwidth> </interface> Signed-off-by: NAnirban Chakraborty <abchak@juniper.net> Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
Since 1.2.8 it's possible to use OVMF on domains. Moreover, it's possible to have libvirt create NVRAM file per domain. Later, when domain is undefined, the file is removed too. However, things are a bit complicated when domain's transient. There's no undefine to transient domains. There are two options: 1) leave the file behind and let mgmt app remove it. 2) remove it automatically as domain dies. But, in some scenarios mgmt app may want to preserve the file, copy it somewhere safe, and then copy it back when the domain is starting again. And this wouldn't be possible with case 2). So, even though case 1) leaves some files behind (possibly undeleted for a long time), the files themselves are small (128K each). And data loss is worse than full disk, isn't it? Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Daniel P. Berrange 提交于
-
- 15 11月, 2014 18 次提交
-
-
由 John Ferlan 提交于
For some reason, commit id '72b4151f' triggered a Coverity uninitialized 'reply' variable check when referenced within the for loop. It seems Coverity doesn't know that flags will have to be either AFFECT_LIVE or AFFECT_CONFIG after the virDomainLiveConfigHelperMethod call. By adding a "sa_assert()" to confirm that fact, Coverity is happy again.
-
由 Luyao Huang 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1164080 After a disk is hotunplugged a subsequent call to qemuDomainGetBlockIoTune to get the --config settings of that disk will fail because the disk is no longer found by qemuDiskPathToAlias causing an unexpected failure. Since only the --live flag needs to have the disk device pointer, move the fetch inside the (flags & VIR_DOMAIN_AFFECT_LIVE) condition. This will also affect the results if no flags are provided or the --current flag is provided. Signed-off-by: NLuyao Huang <lhuang@redhat.com>
-
由 John Ferlan 提交于
The recent commit to add support for block_set_io_throttle parameters from version 1.7 of qemu did not add any tests - this adds the tests Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
由 John Ferlan 提交于
Seems the 'size_iops_sec' was a late add and the checks for whether the field was defined, but unsupported and the maximum size of the field were not being made. Also, adjust blkdeviotune support error message for grammar, spelling (paramater), and remove the "(need QEMU 1.7 or superior)". None of our other similar error messages list which QEMU version is required. Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
由 Martin Kletzander 提交于
We're looking for three consecutive lines, first one is a if/for/while with a condition and start of body, second one is a body with one and only semicolon and third is end of the body by itself. Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
Change while () { smth; last; } to if () { smth; } as 'last' in perl is analogous to 'break' in C. These are probably copy-paste leftovers from creating new syntax-check rules. Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
In bracket-spacing.pl, the current $line is being modified in $data. That, however, spoils that $data for another check. Introduce new $tmpdata variable that can be used for temporary modifications. The difference between $data and $line is that $data are as much cleaned as possible from non-code blocks and these changes must be kept. Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
After recent discussion it looks like curly brackets around one-line bodies are preferred if the preceding condition is, itself, multiline. Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-