- 04 6月, 2012 3 次提交
-
-
由 Jiri Denemark 提交于
EBADF errors are logged as warnings as they normally indicate a double close bug. This patch also provides VIR_MASS_CLOSE helper to be user in the only case of mass close after fork when EBADF should rather be ignored.
-
由 Jiri Denemark 提交于
Probably a result of copy&paste...
-
由 Radu Caragea 提交于
The stream lock is unlocked twice instead of being locked and then unlocked. Probably a typo.
-
- 02 6月, 2012 7 次提交
-
-
由 Michal Privoznik 提交于
If users *-edit but make a mistake in XML all changes are permanently lost. However, if virsh is not running within a script we can ask user if he wants to re-edit the file and correct the mistakes.
-
由 Michal Privoznik 提交于
Currently, we either generate some cmd*Edit commands (cmdPoolEdit and cmdNetworkEdit) via sed script or copy the body of cmdEdit (e.g. cmdInterfaceEdit, cmdNWFilterEdit, etc.). This fact makes it harder to implement any new feature to our editing system. Therefore switch to new implementation - define macros to: - dump XML (EDIT_GET_XML) - take an action if XML wasn't changed, usually just vshPrint() (EDIT_NOT_CHANGED) - define new object (EDIT_DEFINE) - the edited XML is in @doc_edited - free object defined by EDIT_DEFINE (EDIT_FREE) and #include "virsh-edit.c"
-
由 Stefan Berger 提交于
With support for multiple IP addresses per interface in place, this patch now adds support for multiple IP addresses per interface for the DHCP snooping code. Testing: Since the infrastructure I tested this with does not provide multiple IP addresses per MAC address (anymore), I either had to plug the VM's interface from the virtual bride connected directly to the infrastructure to virbr0 to get a 2nd IP address from dnsmasq (kill and run dhclient inside the VM) or changed the lease file (/var/run/libvirt/network/nwfilter.leases) and restart libvirtd to have a 2nd IP address on an existing interface. Note that dnsmasq can take a lease timeout parameter as part of the --dhcp-range command line parameter, so that timeouts can be tested that way (--dhcp-range 192.168.122.2,192.168.122.254,120). So, terminating and restarting dnsmasq with that parameter is another choice to watch an IP address disappear after 120 seconds. Regards, Stefan
-
由 Stefan Berger 提交于
The goal of this patch is to prepare for support for multiple IP addresses per interface in the DHCP snooping code. Move the code for the IP address map that maps interface names to IP addresses into their own file. Rename the functions on the way but otherwise leave the code as-is. Initialize this new layer separately before dependent layers (iplearning, dhcpsnooping) and shut it down after them.
-
由 Stefan Berger 提交于
This patch adds DHCP snooping support to libvirt. The learning method for IP addresses is specified by setting the "CTRL_IP_LEARNING" variable to one of "any" [default] (existing IP learning code), "none" (static only addresses) or "dhcp" (DHCP snooping). Active leases are saved in a lease file and reloaded on restart or HUP. The following interface XML activates and uses the DHCP snooping: <interface type='bridge'> <source bridge='virbr0'/> <filterref filter='clean-traffic'> <parameter name='CTRL_IP_LEARNING' value='dhcp'/> </filterref> </interface> All filters containing the variable 'IP' are automatically adjusted when the VM receives an IP address via DHCP. However, multiple IP addresses per interface are silently ignored in this patch, thus only supporting one IP address per interface. Multiple IP address support is added in a later patch in this series. Signed-off-by: NDavid L Stevens <dlstevens@us.ibm.com> Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com>
-
由 Marti Raudsepp 提交于
Currently, monitoring QEMU virtual machines with standard Unix sysadmin tools is harder than it has to be. The QEMU command line is often miles long and mostly redundant, it's hard to tell which process is which. This patch reorders the QEMU -name argument to be the first, so it's immediately visible in "ps x", htop and "atop -c" output.
-
由 Laine Stump 提交于
This patch resolves: https://bugzilla.redhat.com/show_bug.cgi?id=827519 The problem is that an interface with type='hostdev' will have an alias of the form "hostdev%d", while the function that looks through existing netdevs to determine the name to use for a new addition will fail if there's an existing entry that does not match the form "net%d". This is another of the handful of places that need an exception due to the hybrid nature of <interface type='hostdev'> (which is not exactly an <interface> or a <hostdev>, but is both at the same time).
-
- 31 5月, 2012 8 次提交
-
-
由 Martin Kletzander 提交于
This patch makes virt-pki-validate work with certificates that have acl or xattr set. Otherwise it failing due to wrong permissions.
-
由 Wen Congyang 提交于
If we migrate to fd, spec->fwdType is not MIGRATION_FWD_DIRECT, we will close spec->dest.fd.local in qemuMigrationRun(). So we should set spec->dest.fd.local to -1 in qemuMigrationRun(). Bug present since 0.9.5 (commit 32617617).
-
由 Wen Congyang 提交于
We should not set *outfd or *errfd if virExecWithHook() failed because the caller may close these fds. Bug present since v0.4.5 (commit 60ed1d2a).
-
由 Eric Blake 提交于
Wen Congyang reported that we have a double-close bug if we fail virFDStreamOpenInternal, since childfd duplicated one of the fds[] array contents. In truth, since we always transfer both members of fds to other variables, we should close the fds through those other names, and just use fds[] for pipe(). Bug present since 0.9.0 (commit e886237a). * src/fdstream.c (virFDStreamOpenFileInternal): Swap scope of childfd and fds[], to avoid a double close.
-
由 Eric Blake 提交于
KAMEZAWA Hiroyuki reported a nasty double-free bug when virCommand is used to convert a string into input to a child command. The problem is that the poll() loop of virCommandProcessIO would close() the write end of the pipe in order to let the child see EOF, then the caller virCommandRun() would also close the same fd number, with the second close possibly nuking an fd opened by some other thread in the meantime. This in turn can have all sorts of bad effects. The bug has been present since the introduction of virCommand in commit f16ad06f. This is based on his first attempt at a patch, at https://bugzilla.redhat.com/show_bug.cgi?id=823716 * src/util/command.c (_virCommand): Drop inpipe member. (virCommandProcessIO): Add argument, to avoid closing caller's fd without informing caller. (virCommandRun, virCommandNewArgs): Adjust clients.
-
由 Wen Congyang 提交于
virCommandRunAsync() will set errfd if it succeed. We should close it if virFDStreamOpenInternal() fails.
-
由 Wen Congyang 提交于
If the system does not support bypass cache, we will close fd, but it is uninitialized.
-
由 Martin Kletzander 提交于
Apart from the non-sanlock check build, there is also a little fix for qemu (EXTRA_DIST had qemu.conf and others inside even if the build was supposed to be without qemu).
-
- 30 5月, 2012 11 次提交
-
-
由 Wen Congyang 提交于
We generate *.aug from *.aug.in by augeas-gentest.pl, so this script should be included in dist file.
-
由 Eric Blake 提交于
Some of our rules used $(PERL), while others used 'perl'. Always using the variable allows a developer to point to a different (often better) perl than the default one found on $PATH. * daemon/Makefile.am ($(srcdir)/remote_dispatch.h): s/perl/$(PERL). * src/Makefile.am ($(srcdir)/remote/remote_client_bodies.h) (PDWTAGS, %protocol.c, %_probes.stp): Likewise.
-
由 Eric Blake 提交于
Without this fix, a VPATH build (such as used by ./autobuild.sh) fails with messages like: make[3]: Entering directory `/home/remote/eblake/libvirt-tmp2/build/daemon' ../../build-aux/augeas-gentest.pl libvirtd.conf ../../daemon/test_libvirtd.aug.in test_libvirtd.aug cannot read libvirtd.conf: No such file or directory at ../../build-aux/augeas-gentest.pl line 38. Since the test files are not part of the tarball, we can generate them into the build dir, but rather than create a subdirectory just for the test file, it is easier to test them directly in libvirt.git/src. * daemon/Makefile.am (AUG_GENTEST): Factor out definition. (test_libvirtd.aug): Look for correct file. * src/Makefile.am (AUG_GENTEST): Use $(PERL). (qemu/test_libvirtd_qemu.aug, lxc/test_libvirtd_lxc.aug) (locking/test_libvirt_sanlock.aug): Rename to avoid subdirectories. (check-augeas-qemu, check-augeas-lxc, check-augeas-sanlock): Reflect location of built tests. * configure.ac (PERL): Substitute perl.
-
由 Eric Blake 提交于
Autoconf 2.60 and later insist on using ${datarootdir}, rather than the derived ${datadir} (although the latter defaults to the former, it is possible to set configure arguments so that they differ): config.status: creating libvirt.pc config.status: WARNING: 'libvirt.pc.in' seems to ignore the --datarootdir setting This patch follows the autoconf manual's suggestions for how to support 2.59 (RHEL 5) and newer simultaneously. * libvirt.pc.in (datarootdir): Define, so ${datadir} will not ignore datarootdir when using newer autoconf.
-
由 Michal Privoznik 提交于
Currently, we are logging only one side of pipes we create in virCommandRequireHandshake(); This is enough in cases where pipe2() returns two consecutive FDs. However, it is not guaranteed and it may return any FDs. Therefore, it's wise to log the other ends as well.
-
由 Martin Kletzander 提交于
When getting number of CPUs the host has assigned, there was always number "1" returned. Even though all lxc domains with no pinning launched by libvirt run on all pCPUs (by default, no matter what's the number), we should at least return the same number as the user specified when creating the domain.
-
由 Martin Kletzander 提交于
I added libvirt_qemu_probes.h into BUILT_SOURCES. That makes it generated, but most probably it is not the clearest way how to do that, but it fixes the build.
-
由 Dave Allan 提交于
A while back I wrote the attached code to demonstrate how to use events and serial console to create a serial console that stays up even when the VM is down. It might need some work, as I am not terribly strong with Python. * examples/python/consolecallback.py: New file. * examples/python/Makefile.am (EXTRA_DIST): Ship it.
-
由 Eric Blake 提交于
The previous patch fixed an incremental build, but missed that on a fresh checkout, we now have nothing left that stops make from nuking libvirt_qemu_probes.o. * src/Makefile.am ($(libvirt_driver_qemu_la_SOURCES)): Delete, since this variable is empty. (.PRECIOUS): Add %_probes.o, so they don't get nuked as an intermediate by-product after creating %_probes.lo.
-
由 Eric Blake 提交于
The moment you specify a _DEPENDENCIES, older automake (stupidly) assumes that you will specify _all_ dependencies for that target. This stupidity has been fixed in automake 1.12, but we cannot rely on newer automake everywhere. For libvirt_la_DEPENDENCIES, we took care of providing the full list, but for libvirt_qemu_la_DEPENDENCIES, we were missing the dependency on libvirt_qemu_impl.la, which resulted in a failed build: make[3]: Entering directory `/home/ajia/Workspace/libvirt/src' CCLD libvirt_driver_qemu.la libtool: link: `libvirt_qemu_probes.lo' is not a valid libtool object * src/Makefile.am (libvirt_driver_qemu_la_DEPENDENCIES): Delete; automake does a better job if it does the entire job.
-
由 Eric Blake 提交于
Otherwise, 'make rpm' fails with: make[2]: *** No rule to make target `locking/test_libvirt_sanlock.aug.in', needed by `distdir'. Stop. make[2]: Leaving directory `/home/dipankar/src/powerpc/libvirt-ppc/src' make[1]: *** [distdir] Error 1 Reported by Dipankar Sarma. * src/Makefile.am (CLEANFILES): Clean only the generated file.
-
- 29 5月, 2012 5 次提交
-
-
由 Eric Blake 提交于
strncpy is generally evil - it runs the risk of missing NUL termination, and more often than not wastes time zeroing way more bytes than strictly necessary. We've avoided this evil in our virStrncpy wrapper, except for places where we forgot to use the wrapper; meanwhile, we have also added an even higher layer wrapper for setting virTypedParameter values. * tools/virsh.c (cmdMemtune, cmdBlkdeviotune): Use modern API. * cfg.mk (exclude_file_name_regexp--sc_prohibit_strncpy): Tighten.
-
由 Eric Blake 提交于
Gnulib finally relaxed the isatty license, needed as first mentioned here: https://www.redhat.com/archives/libvir-list/2012-February/msg01022.html Other improvements include better syntax-check rules (we can delete one of ours now that it is a duplicate) and better compiler warning usage. * .gnulib: Update to latest, for isatty. * cfg.mk (sc_prohibit_strncpy): Drop a now-redundant rule. * bootstrap.conf (gnulib_modules): Add isatty. * bootstrap: Resync from gnulib.
-
由 Stefan Berger 提交于
==3240== 23 bytes in 1 blocks are definitely lost in loss record 242 of 744 ==3240== at 0x4C2A4CD: malloc (vg_replace_malloc.c:236) ==3240== by 0x8077537: __vasprintf_chk (vasprintf_chk.c:82) ==3240== by 0x509C677: virVasprintf (stdio2.h:199) ==3240== by 0x509C733: virAsprintf (util.c:1912) ==3240== by 0x1906583A: qemudStartup (qemu_driver.c:679) ==3240== by 0x511991D: virStateInitialize (libvirt.c:809) ==3240== by 0x40CD84: daemonRunStateInit (libvirtd.c:751) ==3240== by 0x5098745: virThreadHelper (threads-pthread.c:161) ==3240== by 0x7953D8F: start_thread (pthread_create.c:309) ==3240== by 0x805FF5C: clone (clone.S:115)
-
由 Stefan Berger 提交于
-
由 Daniel P. Berrange 提交于
src/libvirt.c: s,//,/,
-
- 28 5月, 2012 6 次提交
-
-
由 Daniel P. Berrange 提交于
To ensure consistent error reporting of invalid arguments, provide a number of predefined helper methods & macros. - An arg which must not be NULL: virCheckNonNullArgReturn(argname, retvalue) virCheckNonNullArgGoto(argname, label) - An arg which must be NULL virCheckNullArgGoto(argname, label) - An arg which must be positive (ie 1 or greater) virCheckPositiveArgGoto(argname, label) - An arg which must not be 0 virCheckNonZeroArgGoto(argname, label) - An arg which must be zero virCheckZeroArgGoto(argname, label) - An arg which must not be negative (ie 0 or greater) virCheckNonNegativeArgGoto(argname, label) * src/libvirt.c, src/libvirt-qemu.c, src/nodeinfo.c, src/datatypes.c: Update to use virCheckXXXX macros * po/POTFILES.in: Add libvirt-qemu.c and virterror_internal.h * src/internal.h: Define macros for checking invalid args * src/util/virterror_internal.h: Define macros for reporting invalid args Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Eric Blake 提交于
Libtool is picky about linking against a module library (aka a .so); giving lots of warnings like this in the tests directory: CCLD networkxml2argvtest *** Warning: Linking the executable networkxml2argvtest against the loadable module *** libvirt_driver_network.so is not portable! Fix that by splitting things into a convenience library which can be used directly by the tests, and making the real .so just wrap the convenience library. Based on a suggestion by Daniel P. Berrange. * configure.ac (--with-driver-modules): Fix help test. * src/Makefile.am (libvirt_driver_xen.la, libvirt_driver_libxl.la) (libvirt_driver_qemu.la, libvirt_driver_lxc.la) (libvirt_driver_uml.la): Factor into new convenience libraries. * tests/Makefile.am (xen_LDADDS, qemu_LDADDS, lxc_LDADDS) (networkxml2argvtest_LDADD): Link to convenience libraries, not shared libraries.
-
由 Daniel P. Berrange 提交于
There was no rule forcing libvirt_qemu_probes.o to be built before libvirt_qemu_probes.lo was used. Also libvirtd was still referencing the .o file, rather than the .lo file. Both the .lo and .o file must be listed as DEPENDENCIES, otherwise libtool will unhelpfully delete the .o file once the .lo file is created. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
The CoTaskMemFree function requires the ole32 DLL to be linked against. Currently this is only done for the VirtualBox driver. Also add it to libvirt_util.la * configure.ac: Unconditionally add ole32 DLL to Win32 * src/Makefile.am: Link old32 to libvirt_util.la
-
由 Martin Kletzander 提交于
"accel3d" was specified twice, the second one is obviously "accel2d" (also from the text down below.
-
由 Daniel P. Berrange 提交于
When adding new config file parameters, the corresponding additions to the augeas lens' are constantly forgotten. Also there are augeas test cases, these don't catch the error, since they too are never updated. To address this, the augeas test cases need to be auto-generated from the example config files. * build-aux/augeas-gentest.pl: Helper to generate an augeas test file, substituting in elements from the example config files * src/Makefile.am, daemon/Makefile.am: Switch to auto-generated augeas test cases * daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in, src/locking/test_libvirt_sanlock.aug, src/locking/test_libvirt_sanlock.aug.in, src/lxc/test_libvirtd_lxc.aug, src/lxc/test_libvirtd_lxc.aug.in, src/qemu/test_libvirtd_qemu.aug, src/qemu/test_libvirtd_qemu.aug.in: Remove example config file data, replacing with a ::CONFIG:: placeholder Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-