1. 10 2月, 2012 7 次提交
    • A
      rpc: Plug memory leaks on doRemoteOpen() failure path · 6d514728
      Alex Jia 提交于
      Detected by valgrind. Leaks are introduced in commit c1b22644.
      
      * src/remote/remote_driver.c (doRemoteOpen): free client program memory in failure path.
      
      * How to reproduce?
      % valgrind -v --leak-check=full virsh -c qemu:
      
      * Actual result
      
      ==3969== 40 bytes in 1 blocks are definitely lost in loss record 8 of 28
      ==3969==    at 0x4A04A28: calloc (vg_replace_malloc.c:467)
          ==3969==    by 0x4C89C41: virAlloc (memory.c:101)
          ==3969==    by 0x4D5A236: virNetClientProgramNew (virnetclientprogram.c:60)
          ==3969==    by 0x4D47AB4: doRemoteOpen (remote_driver.c:658)
          ==3969==    by 0x4D49FFF: remoteOpen (remote_driver.c:871)
          ==3969==    by 0x4D13373: do_open (libvirt.c:1196)
          ==3969==    by 0x4D14535: virConnectOpenAuth (libvirt.c:1422)
          ==3969==    by 0x425627: main (virsh.c:18537)
          ==3969==
          ==3969== 40 bytes in 1 blocks are definitely lost in loss record 9 of 28
          ==3969==    at 0x4A04A28: calloc (vg_replace_malloc.c:467)
          ==3969==    by 0x4C89C41: virAlloc (memory.c:101)
          ==3969==    by 0x4D5A236: virNetClientProgramNew (virnetclientprogram.c:60)
          ==3969==    by 0x4D47AD7: doRemoteOpen (remote_driver.c:664)
          ==3969==    by 0x4D49FFF: remoteOpen (remote_driver.c:871)
          ==3969==    by 0x4D13373: do_open (libvirt.c:1196)
          ==3969==    by 0x4D14535: virConnectOpenAuth (libvirt.c:1422)
          ==3969==    by 0x425627: main (virsh.c:18537)
          ==3969==
          ==3969== LEAK SUMMARY:
          ==3969==    definitely lost: 80 bytes in 2 blocks
      Signed-off-by: NAlex Jia <ajia@redhat.com>
      6d514728
    • O
      npiv: Auto-generate WWN if it's not specified · 7c90026d
      Osier Yang 提交于
      The auto-generated WWN comply with the new addressing schema of WWN:
      
      <quote>
      the first nibble is either hex 5 or 6 followed by a 3-byte vendor
      identifier and 36 bits for a vendor-specified serial number.
      </quote>
      
      We choose hex 5 for the first nibble. And for the 3-bytes vendor ID,
      we uses the OUI according to underlying hypervisor type, (invoking
      virConnectGetType to get the virt type). e.g. If virConnectGetType
      returns "QEMU", we use Qumranet's OUI (00:1A:4A), if returns
      ESX|VMWARE, we use VMWARE's OUI (00:05:69). Currently it only
      supports qemu|xen|libxl|xenapi|hyperv|esx|vmware drivers. The last
      36 bits are auto-generated.
      7c90026d
    • M
      Remove single quotes from audit records · 8ac1f8f4
      Marcelo Cerri 提交于
      Some audit records generated by libvirt contain fields enclosed by single
      quotes. Since those fields are inside the msg field, which is enclosed by
      single quotes, these records generated by libvirt are not correctly parsed by
      libauparse.
      8ac1f8f4
    • L
      GetCPUStats: fix overflow test · f9f2d3b1
      Lai Jiangshan 提交于
      Bug introduced in commit c6ec021b.
      Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
      f9f2d3b1
    • M
      domain: add implicit USB controller · 42043afc
      Marc-André Lureau 提交于
      Some tools, such as virt-manager, prefers having the default USB
      controller explicit in the XML document. This patch makes sure there
      is one. With this patch, it is now possible to switch from USB1 to
      USB2 from the release 0.9.1 of virt-manager.
      
      Fix tests to pass with this change.
      42043afc
    • G
      python: refactoring virTypedParameter conversion for NUMA tuning APIs · 9c8466da
      Guannan Ren 提交于
                *getPyVirTypedParameter
                *setPyVirTypedParameter
                *virDomainSetNumaParameters
                *virDomainGetNumaParameters
      Signed-off-by: NEric Blake <eblake@redhat.com>
      9c8466da
    • E
      docs: fix typo in python bindings · 612fd157
      Eric Blake 提交于
      * docs/python.html.in: Class is virConnect, not virConn.
      612fd157
  2. 09 2月, 2012 8 次提交
  3. 08 2月, 2012 14 次提交
    • P
      virsh: Fix flag semantics and docs for "desc" command · 4f89138b
      Peter Krempa 提交于
      This patch fixes the domain modification impact flags for tie virsh
      desc command to match the new semantics and fix the docs to match
      actual behavior.
      4f89138b
    • J
      qemu: Fix memory leak when building -cpu argument · 91ca45f9
      Jiri Denemark 提交于
      Reported by Alex Jia:
      
      ==21503== 112 (32 direct, 80 indirect) bytes in 1 blocks are
      definitely lost in loss record 37 of 40
      ==21503==    at 0x4A04A28: calloc (vg_replace_malloc.c:467)
      ==21503==    by 0x4A8991: virAlloc (memory.c:101)
      ==21503==    by 0x505A6C: x86DataCopy (cpu_x86.c:247)
      ==21503==    by 0x507B34: x86Compute (cpu_x86.c:1225)
      ==21503==    by 0x43103C: qemuBuildCommandLine (qemu_command.c:3561)
      ==21503==    by 0x41C9F7: testCompareXMLToArgvHelper
      (qemuxml2argvtest.c:183)
      ==21503==    by 0x41E10D: virtTestRun (testutils.c:141)
      ==21503==    by 0x41B942: mymain (qemuxml2argvtest.c:705)
      ==21503==    by 0x41D7E7: virtTestMain (testutils.c:696)
      91ca45f9
    • J
      qemu: Always use iohelper for domain save · c4caab53
      Jiri Denemark 提交于
      This is probably not strictly needed as save operation is not live but
      we may have other reasons to avoid blocking qemu's main loop.
      c4caab53
    • J
      security: Driver 'none' cannot create confined guests · afb96301
      Jiri Denemark 提交于
      In case the caller specifies that confined guests are required but the
      security driver turns out to be 'none', we should return an error since
      this driver clearly cannot meet that requirement.  As a result of this
      error, libvirtd fails to start when the host admin explicitly sets
      confined guests are required but there is no security driver available.
      
      Since security driver 'none' cannot create confined guests, we override
      default confined setting so that hypervisor drivers do not thing they
      should create confined guests.
      afb96301
    • J
      seclabel: Do not output relabel attribute for type 'none' · f6957617
      Jiri Denemark 提交于
      Security label type 'none' requires relabel to be set to 'no' so there's
      no reason to output this extra attribute.  Moreover, since relabel is
      internally stored in a negative from (norelabel), the default value for
      relabel would be 'yes' in case there is no <seclabel> element in domain
      configuration.  In case VIR_DOMAIN_SECLABEL_DEFAULT turns into
      VIR_DOMAIN_SECLABEL_NONE, we would incorrectly output relabel='yes' for
      seclabel type 'none'.
      f6957617
    • J
      qemu: Always use iohelper for dumping domain core · c8683f23
      Jiri Denemark 提交于
      Qemu uses non-blocking I/O which doesn't play nice with regular file
      descriptors. We need to pass a pipe to qemu instead, which can easily be
      done using iohelper.
      c8683f23
    • J
      util: Generalize virFileDirectFd · afe6e58a
      Jiri Denemark 提交于
      virFileDirectFd was used for accessing files opened with O_DIRECT using
      libvirt_iohelper. We will want to use the helper for accessing files
      regardless on O_DIRECT and thus virFileDirectFd was generalized and
      renamed to virFileWrapperFd.
      afe6e58a
    • A
      virsh: Plug memory leak on cmdDesc · faad9648
      Alex Jia 提交于
      faad9648
    • O
      virsh: Do not check the input XML at virsh layer for cmdDetachDevice · c001eb5b
      Osier Yang 提交于
      Any device XML doesn't use the same order as libvirt generates, or
      uses decimal for attributes like "slot" of "<address>" will cause
      device detaching to fail, as virsh compares the XML simply earlier
      in strict manner before internal parsing.
      
      This is regression introduced by ea7182c2.
      c001eb5b
    • E
      python: drop unused function · 9fbbcda6
      Eric Blake 提交于
      Gcc warned about an unused static function.
      
      * python/libvirt-qemu-override.c (py_str): Delete.
      9fbbcda6
    • P
      On systems with dmidecode version 2.10 or older, · a76530c9
      Prerna Saxena 提交于
       dmidecode displays processor information, followed by BIOS, system and
       memory-DIMM details.
       Calls to virSysinfoParseBIOS(), virSysinfoParseSystem() would update
       the buffer pointer 'base', so the processor information would be lost
       before virSysinfoParseProcessor() was called. Sysinfo would therefore
       not be able to display processor details -- It only described <bios>,
       <system> and <memory_device> details.
       This patch attempts to insulate sysinfo from ordering of dmidecode
       output.
      
      Before the fix:
      ---------------
      virsh # sysinfo
      <sysinfo type='smbios'>
        <bios>
          ....
        </bios>
        <system>
          ....
        </system>
        <memory_device>
          ....
        </memory_device>
      
      After the fix:
      -------------
      virsh # sysinfo
      <sysinfo type='smbios'>
        <bios>
          ....
        </bios>
        <system>
          ....
        </system>
        <processor>
          ....
        </processor>
        <memory_device>
          ....
        </memory_device>
      a76530c9
    • C
      storage: Don't unsparsify images when cloning · 0ed86cfb
      Cole Robinson 提交于
      Input to the volume cloning code is a source volume and an XML
      descriptor for the new volume. It is possible for the new volume
      to have a greater size than source volume, at which point libvirt
      will just stick 0s on the end of the new image (for raw format
      anyways).
      
      Unfortunately a logic error messed up our tracking of the of the
      excess amount that needed to be written: end result is that sparse
      clones were made very much non-sparse, and cloning regular disk
      images could end up excessively sized (though data unaltered).
      
      Drop the 'remain' variable entriely here since it's redundant, and
      track actual allocation directly against the desired 'total'.
      0ed86cfb
    • L
      build: don't require avahi during install · 60f19073
      Laine Stump 提交于
      See: https://bugzilla.redhat.com/show_bug.cgi?id=785269
      
      The specfile requires avahi during install if libvirt was built with
      avahi support, but there are many situations where it is undesirable
      to install avahi due to security concerns. This patch requires only
      the avahi-libs package, which is needed by libvirt to call the
      function that tries to attach to the avahi daemon, but will instead
      silently fail because the avahi-daemon is in the main avahi package,
      and that package isn't installed.
      60f19073
    • C
      Allow polkit auth for VNC and SSH users · 756e6ab4
      Cole Robinson 提交于
      If you are sitting in front of a physical machine and logged in as
      a regular user, you can connect to the system libvirtd instance
      by providing a root password to policykit. This is how most
      virt-manager users talk to libvirt.
      
      However, if you are launching virt-manager over ssh -X, or over
      VNC started from say /etc/sysconfig/vncservers, our policykit policy
      rejects the user outright, providing no option to provide the root
      password. This is confusing to users and doesn't seem to serve much
      point.
      
      Change the policy to allow inactive (VNC) and non-local (SSH, VNC)
      to provide root credentials for accessing system libvirtd. We use
      auth_admin rather than auth_admin_keep so that credentials aren't
      cached at all, and every subsequent reconnection to libvirt requires
      auth.
      
      Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=625115
      Similar change to PackageKit policy:
      https://bugzilla.redhat.com/show_bug.cgi?id=528511
      756e6ab4
  4. 07 2月, 2012 7 次提交
    • M
      pyhton: Don't link against libvirt_util.la · f2445e4d
      Michal Privoznik 提交于
      As we already link with libvirt.la which contains libvirt_utils.la.
      Double linking causes global symbols to be presented twice and
      thus confusion. This partially reverts c700613b
      f2445e4d
    • E
      build: avoid gcc 4.7 warning about inlines · 32b2e5a8
      Eric Blake 提交于
      gcc 4.7 complains:
      
      util/virhashcode.c:49:17: error: always_inline function might not be inlinable [-Werror=attributes]
      util/virhashcode.c:35:17: error: always_inline function might not be inlinable [-Werror=attributes]
      
      Normal 'inline' is a hint that the compiler may ignore; the fact
      that the function is static is good enough.  We don't care if the
      compiler decided not to inline after all.
      
      * src/util/virhashcode.c (getblock, fmix): Relax attribute.
      32b2e5a8
    • D
      Clarify the purpose of domxml-from-native · 10cc08ee
      Dave Allan 提交于
      Someone mentioned to me that they interpreted this section of the KVM
      driver page as suggesting that new guests should be created by
      creating a qemu commandline and converting it to XML with
      domxml-from-native.  I don't think that's the intent of
      domxml-from-native, so I added that clarification.
      10cc08ee
    • P
      xen-xm: SIGSEGV in xenXMDomainDefineXML: filename · 360afebf
      Philipp Hahn 提交于
      filename is not initialized to NULL while it's unconditionally freed in
      the error path.
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      360afebf
    • P
      xen-xm: fix data loss in domain edit · 700102c9
      Philipp Hahn 提交于
      On CentOS5:
      If "virsh edit $DOM" is used and an error happens (for example changing
      any live cycle action to a non-existing value), libvirt forgets that
      $DOM exists, since it is already removed from the internal hash tables,
      which are used for domain lookup.
      In once case (unreproducible) even the persistent configuration
      /etc/xen/$DOM was deleted.
      
      Instead of using the compound function xenXMConfigSaveFile() explicitly
      use xenFomatXM() and virConfWriteFile() to distinguish between a failure
      in converting the libvirt definition to the xen-xm format and a problem
      when writing the file.
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      700102c9
    • E
      seclabel: make code and RNG match · c052d8a8
      Eric Blake 提交于
      Commit b170eb99 introduced a bug: domains that had an explicit
      <seclabel type='none'/> when started would not be reparsed if
      libvirtd restarted.  It turns out that our testsuite was not
      exercising this because it never tried anything but inactive
      parsing.  Additionally, the live XML for such a domain failed
      to re-validate.  Applying just the tests/ portion of this patch
      will expose the bugs that are fixed by the other two files.
      
      * docs/schemas/domaincommon.rng (seclabel): Allow relabel under
      type='none'.
      * src/conf/domain_conf.c (virSecurityLabelDefParseXML): Per RNG,
      presence of <seclabel> with no type implies dynamic.  Don't
      require sub-elements for type='none'.
      * tests/qemuxml2xmltest.c (mymain): Add test.
      * tests/qemuxml2argvtest.c (mymain): Likewise.
      * tests/qemuxml2argvdata/qemuxml2argv-seclabel-none.xml: Add file.
      * tests/qemuxml2argvdata/qemuxml2argv-seclabel-none.args: Add file.
      Reported by Ansis Atteka.
      c052d8a8
    • P
      maint: Add test output files to .gitignore · 13545647
      Peter Krempa 提交于
      Commit 8f00276c consolidated other
      .gitignore files to the master one, but forgot to add some test output
      files.
      13545647
  5. 06 2月, 2012 4 次提交
    • A
      Update myself in AUTHORS · 7b448cae
      Alex Jia 提交于
      Move myself from 'Previous maintainers' section to 'the primary maintainers and
      people with commit access rights' section, because I have a commit rights now.
      Signed-off-by: NAlex Jia <ajia@redhat.com>
      7b448cae
    • P
      virsh: Fix resource leak while listing inactive domains with titles · 35d31954
      Peter Krempa 提交于
      Commit fad5cd21 introduces a new flag
      that allows to show domain's title with domains. This commit introduced
      resource leak while listing inactive domains with titles.
      35d31954
    • P
      xen_xm: Fix SIGSEGV in xenXMDomainDefineXML · 046b0a69
      Philipp Hahn 提交于
      On CentOS5 with xen-3.0.3:
      
       Program received signal SIGSEGV, Segmentation fault.
       virFree (ptrptr=0x8) at util/memory.c:310
       310         free(*(void**)ptrptr);
       (gdb) bt
       #0  virFree (ptrptr=0x8) at util/memory.c:310
       #1  0x00002aaaaae167c8 in xenXMDomainDefineXML (conn=0x694e80, xml=0x6b2ce0 "P\fk") at xen/xm_internal.c:1199
       #2  0x00002aaaaae070d7 in xenUnifiedDomainDefineXML (conn=0x8,
           xml=0x6ac040 "<domain type='xen'>\n  <name>pv</name>\n  <uuid>20291bc0-453a-4d6c-c6ac-4e5af63b932c</uuid>\n  <memory>1048576</memory>\n  <currentMemory>1048576</currentMemory>\n  <vcpu>1</vcpu>\n  <os>\n    <type arch='x8"...) at xen/xen_driver.c:1524
       #3  0x00002aaaaada7803 in virDomainDefineXML (conn=0x694e80,
           xml=0x6ac040 "<domain type='xen'>\n  <name>pv</name>\n  <uuid>20291bc0-453a-4d6c-c6ac-4e5af63b932c</uuid>\n  <memory>1048576</memory>\n  <currentMemory>1048576</currentMemory>\n  <vcpu>1</vcpu>\n  <os>\n    <type arch='x8"...) at libvirt.c:7823
       #4  0x0000000000426173 in cmdEdit (ctl=0x7fffffffb8e0, cmd=<value optimized out>) at virsh.c:14882
       #5  0x000000000041c9ce in vshCommandRun (ctl=0x7fffffffb8e0, cmd=0x658c50) at virsh.c:17712
       #6  0x000000000042c3b9 in main (argc=1, argv=<value optimized out>) at virsh.c:19317
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      046b0a69
    • J
      docs: Enhance documentation of the old-style boot configuration · 4f20dedf
      Jiri Denemark 提交于
      Also encourages people to use per-device boot elements for better
      control.
      4f20dedf