1. 02 12月, 2010 6 次提交
    • O
      qemu: Fix typo in qemuTeardownDiskPathDeny · ead3c434
      Osier Yang 提交于
      typo in error message, it should be by copy-a-paste
      from "qemuSetupDiskPathAllow".
      
      * src/qemu/qemu_driver.c (qemuTeardownDiskPathDeny)
      ead3c434
    • E
      qemu: plug memory leak · 428ea3a6
      Eric Blake 提交于
      * src/qemu/qemu_driver.c (qemudShutdown): Free all strings and the
      ebtables structure.
      * src/libvirt_private.syms (ebtablesContextFree): Export missing
      symbol.
      * src/util/ebtables.c (ebtablesContextFree): Allow early exit.
      428ea3a6
    • E
      libvirtd: avoid memory leak on shutdown · 6d0df648
      Eric Blake 提交于
      * daemon/libvirtd.c (qemudRunLoop): Free any remaining client data.
      6d0df648
    • D
      Fix flaw in thread creation APIs · 9c656092
      Daniel P. Berrange 提交于
      The arguments passed to the thread function must be allocated on
      the heap, rather than the stack, since it is possible for the
      spawning thread to continue before the new thread runs at all.
      In such a case, it is possible that the area of stack where the
      thread args were stored is overwritten.
      
      * src/util/threads-pthread.c, src/util/threads-win32.c: Allocate
        thread arguments on the heap
      9c656092
    • O
      virsh: update help for "virsh help help" · 33e38e77
      Osier Yang 提交于
      As virsh help supports both command and command group now,
      update "cmdHelp" to print consite help, (this patch is
      increment of "78290527").
      
      And also remove redundant empty line in "vshUsage".
      
      * tools/virsh.c
      33e38e77
    • M
      Fix undefined symbol errors when macvtap support is disabled · 474b1c14
      Matthias Bolte 提交于
      Use macvtap specific functions depending on WITH_MACVTAP.
      
      Use #if instead of #ifdef to check for WITH_MACVTAP, because
      WITH_MACVTAP is always defined with value 0 or 1.
      
      Also export virVMOperationType{To|From}String unconditional,
      because they are used unconditional in the domain config code.
      474b1c14
  2. 01 12月, 2010 12 次提交
    • J
      Fix warning when macvtap support is disabled · 45147ca3
      Jean-Baptiste Rouault 提交于
      45147ca3
    • J
      virsh: remove a badly placed line break in virsh -h output · 270b0b5f
      Justin Clift 提交于
      The output was previously:
      
          -c | --connect <uri>    hypervisor connection URI
          -r | --readonly         connect readonly
          -d | --debug <num>      debug level [0-5]
          -h | --help             this help
          -q | --quiet            quiet mode
          -t | --timing           print timing information
          -l | --log <file>       output logging to file
          -v | --version[=short]  program version
      
          -V | --version=long     version and full options
      
      (note the blank line between the --version types)
      
      This patch removes the extra blank line.
      270b0b5f
    • J
      tests: Add unit tests for internal CPU APIs · 598b9fe4
      Jiri Denemark 提交于
      598b9fe4
    • J
      72bce49d
    • H
      Fall back to QEMUD_SAVE_FORMAT_RAW if compression method fails. · 1b6f13bb
      Hu Tao 提交于
      When dumping a domain, it's reasonable to save dump-file in raw format
      if dump format is misconfigured or the corresponding compress program
      is not available rather then fail dumping.
      1b6f13bb
    • O
      virsh: Categorize commands into groups for virsh help · 78290527
      Osier Yang 提交于
      Change the virsh help out. The new output of "virsh help" and
      "virsh --help" will be like:
      
       Secret (help keyword 'secret'):
          secret-define                  define or modify a secret from an XML file
          secret-dumpxml                 secret attributes in XML
          secret-set-value               set a secret value
          secret-get-value               Output a secret value
          secret-undefine                undefine a secret
          secret-list                    list secrets
      
       Snapshot (help keyword 'snapshot'):
          snapshot-create                Create a snapshot
          snapshot-current               Get the current snapshot
          snapshot-delete                Delete a domain snapshot
          snapshot-dumpxml               Dump XML for a domain snapshot
          snapshot-list                  List snapshots for a domain
          snapshot-revert                Revert a domain to a snapshot
      
      Also support output help information of specified command group, e.g.
      
      % ./tools/virsh help "Network Filter"
       Network Filter (help keyword 'filter'):
          nwfilter-define                define or update a network filter from an XML file
          nwfilter-undefine              undefine a network filter
          nwfilter-dumpxml               network filter information in XML
          nwfilter-list                  list network filters
          nwfilter-edit                  edit XML configuration for a network filter
      
      Each group has a help keyword, e.g.
      
      % ./tools/virsh help filter
       Network Filter (help keyword 'filter'):
          nwfilter-define                define or update a network filter from an XML file
          nwfilter-undefine              undefine a network filter
          nwfilter-dumpxml               network filter information in XML
          nwfilter-list                  list network filters
          nwfilter-edit                  edit XML configuration for a network filter
      
      * tools/virsh.c:
        - introduce new struct "vshCmdGrp" and macros to define the groups.
        - split previous array "commands" into small arrays which are orgnized
          by group
        - changed some functions, e.g. "vshCmdDefSearch"
        - Added new functions, e.g. "vshCmdGrpSearch"
        - commands of each group are in "alphabetical order" now.
        - command groups are in "alphabetical order" now.
        - the commands are categorized with reference of
          http://wiki.libvirt.org/page/VirshHelpV2 (by Justin)
        - the modifications doesn't affect tests
      
      * TODO:
        - doc
      78290527
    • E
      maint: allow 'make syntax-check' to run again · dd70168a
      Eric Blake 提交于
      * cfg.mk (VC_LIST_ALWAYS_EXCLUDE_REGEX): Permanently exempt
      docs/news.html.in from all future syntax checks.
      dd70168a
    • D
      Release of libvirt 0.8.6 · a33db6cb
      Daniel Veillard 提交于
      - configure.ac libvirt.spec.in: bump version, add a missing systemtap
        build requirement
      - docs/news.html.in: add informations about the release
      - po/*: updated Polish and Dutch localizations, and regenerated
      - tests/qemuxml2argvtest.c: Fix build problem
      a33db6cb
    • S
      802.1Qbg: use pre-associate state at beginning of inc. migr · c2b38277
      Stefan Berger 提交于
      This patch introduces the usage of the pre-associate state of the IEEE 802.1Qbg standard on incoming VM migration on the target host. It is in response to bugzilla entry 632750.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=632750
      
      For being able to differentiate the exact reason as to why a macvtap device is being created, either due to a VM creation or an incoming VM migration, I needed to pass that reason as a parameter from wherever qemudStartVMDaemon is being called in order to determine whether to send an ASSOCIATE (VM creation) or a PRE-ASSOCIATE (incoming VM migration) towards lldpad.
      
      I am also fixing a problem with the virsh domainxml-to-native call on the way.
      
      Gerhard successfully tested the patch with a recent blade network 802.1Qbg-compliant switch.
      
      The patch should not have any side-effects on the 802.1Qbh support in libvirt, but Roopa (cc'ed) may want to verify this.
      c2b38277
    • G
      Ignore files generated by "make tags" · d7e2b2b4
      Guido Günther 提交于
      d7e2b2b4
    • G
      OpenVZ: Fix some overwritten error codes · 2d626c7d
      Guido Günther 提交于
      Don't overwrite errors during domain creation/definition to ease
      tracking down problems.
      2d626c7d
    • G
      OpenVZ: take veid from vmdef->name when defining new domains · 50a7c59b
      Guido Günther 提交于
      We currently use the next free veid although there's one given in the
      domain xml. This currently breaks defining new domains since vmdef->name
      and veid don't match leading to the following error later on:
      
          error: Failed to define domain from 110.xml
          error: internal error Could not set UUID
      
      Since silently ignoring vmdef->name is not nice respect it instead. We
      avoid veid collisions in the upper levels already.
      50a7c59b
  3. 30 11月, 2010 2 次提交
    • M
      Log client errors in libvirtd at debug priority · abff683f
      Matthias Bolte 提交于
      This reverts commit
      
       Log all errors at level INFO to stop polluting syslog
       04bd0360.
      
      and makes virRaiseErrorFull() log errors at debug priority
      when called from inside libvirtd. This stops libvirtd from
      polluting it's own log with client errors at error priority
      that'll be reported and logged on the client side anyway.
      abff683f
    • W
      correct the arguments of migrate_speed · 4f7162d1
      Wen Congyang 提交于
      When we set migrate_speed by json, we receive the following
      error message:
      libvirtError: internal error unable to execute QEMU command
      'migrate_set_speed': Invalid parameter type, expected: number
      
      The reason is that: the arguments of migrate_set_speed
      by json is json number, not json string.
      Signed-off-by: NWen Congyang <wency@cn.fujitsu.com>
      4f7162d1
  4. 29 11月, 2010 4 次提交
  5. 26 11月, 2010 1 次提交
  6. 25 11月, 2010 10 次提交
    • J
      Fix host CPU counting on unusual NUMA topologies · ac9dd4a6
      Jiri Denemark 提交于
      The nodeinfo structure includes
      
          nodes   : the number of NUMA cell, 1 for uniform mem access
          sockets : number of CPU socket per node
          cores   : number of core per socket
          threads : number of threads per core
      
      which does not work well for NUMA topologies where each node does not
      consist of integral number of CPU sockets.
      
      We also have VIR_NODEINFO_MAXCPUS macro in public libvirt.h which
      computes maximum number of CPUs as (nodes * sockets * cores * threads).
      
      As a result, we can't just change sockets to report total number of
      sockets instead of sockets per node. This would probably be the easiest
      since I doubt anyone is using the field directly. But because of the
      macro, some apps might be using sockets indirectly.
      
      This patch leaves sockets to be the number of CPU sockets per node (and
      fixes qemu driver to comply with this) on machines where sockets can be
      divided by nodes. If we can't divide sockets by nodes, we behave as if
      there was just one NUMA node containing all sockets. Apps interested in
      NUMA should consult capabilities XML, which is what they probably do
      anyway.
      
      This way, the only case in which apps that care about NUMA may break is
      on machines with funky NUMA topology. And there is a chance libvirt
      wasn't able to start any guests on those machines anyway (although it
      depends on the topology, total number of CPUs and kernel version).
      Nothing changes at all for apps that don't care about NUMA.
      ac9dd4a6
    • P
      Fix broken XML entity for '>' · 338289a6
      Philipp Hahn 提交于
      Add missing 'g' to '&gt;' of '<product />' source-element.
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      338289a6
    • E
      security, storage: plug memory leaks for security_context_t · d95488dc
      Eric Blake 提交于
      security_context_t happens to be a typedef for char*, and happens to
      begin with a string usable as a raw context string.  But in reality,
      it is an opaque type that may or may not have additional information
      after the first NUL byte, where that additional information can
      include pointers that can only be freed via freecon().
      
      Proof is from this valgrind run of daemon/libvirtd:
      
      ==6028== 839,169 (40 direct, 839,129 indirect) bytes in 1 blocks are definitely lost in loss record 274 of 274
      ==6028==    at 0x4A0515D: malloc (vg_replace_malloc.c:195)
      ==6028==    by 0x3022E0D48C: selabel_open (label.c:165)
      ==6028==    by 0x3022E11646: matchpathcon_init_prefix (matchpathcon.c:296)
      ==6028==    by 0x3022E1190D: matchpathcon (matchpathcon.c:317)
      ==6028==    by 0x4F9D842: SELinuxRestoreSecurityFileLabel (security_selinux.c:382)
      
      800k is a lot of memory to be leaking.
      
      * src/storage/storage_backend.c
      (virStorageBackendUpdateVolTargetInfoFD): Avoid leak on error.
      * src/security/security_selinux.c
      (SELinuxReserveSecurityLabel, SELinuxGetSecurityProcessLabel)
      (SELinuxRestoreSecurityFileLabel): Use correct function to free
      security_context_t.
      d95488dc
    • E
      network: plug memory leak · d90babe9
      Eric Blake 提交于
      * src/conf/network_conf.c (virNetworkDHCPRangeDefParseXML): Free
      xml strings when no longer referenced.
      d90babe9
    • E
      maint: prohibit most uses of xmlGetProp · 416c09bc
      Eric Blake 提交于
      Making this change makes it easier to spot the memory leaks
      that will be fixed in the next patch.
      
      * cfg.mk (sc_prohibit_xmlGetProp): New rule.
      * .x-sc_prohibit_xmlGetProp: New exception.
      * Makefile.am (EXTRA_DIST): Ship exception file.
      * tools/virsh.c (cmdDetachInterface, cmdDetachDisk): Adjust
      offenders.
      * src/conf/storage_conf.c (virStoragePoolDefParseSource):
      Likewise.
      * src/conf/network_conf.c (virNetworkDHCPRangeDefParseXML)
      (virNetworkIPParseXML): Likewise.
      416c09bc
    • E
      qemu: plug memory leak · 117246e0
      Eric Blake 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=656795
      
      * src/qemu/qemu_monitor.c (qemuMonitorFree): Also free the buffer.
      117246e0
    • E
      maint: ensure syntax check exceptions are distributed · 97cde147
      Eric Blake 提交于
      * Makefile.am (EXTRA_DIST): Factor exceptions files...
      (syntax_check_excpetions): into new list.  Include recently added
      exceptions.
      * cfg.mk (sc_x_sc_dist_check): New check, copied from coreutils.
      97cde147
    • E
      build: enforce files.h usage · f1fe9671
      Eric Blake 提交于
      * cfg.mk (sc_prohibit_close): New syntax-check rule.
      * src/util/pci.c (pciWaitForDeviceCleanup): Fix violation.
      * .x-sc_prohibit_close: New exceptions.
      * Makefile.am (EXTRA_DIST): Distribute new file.
      f1fe9671
    • M
      Always close drivers when a virConnectPtr is released · d8b36749
      Matthias Bolte 提交于
      virConnectClose calls virUnrefConnect which in turn closes
      all open drivers when the refcount of that connection dropped
      to zero. This works fine when you free all other objects that
      hold a ref to the connection before you close it, because in
      this case virUnrefConnect is the one that removes the last
      ref to the connection.
      
      But it doesn't work when you close the connection first before
      freeing the other objects. This is because the other virUnref*
      functions call virReleaseConnect when they detect that the
      connection's refcount dropped to zero. In this case another
      virUnref* function (different from virUnrefConnect) removes the
      last ref to the connection. This results in not closing the
      open drivers and leaking things that should have been cleaned
      up in the driver close functions.
      
      To fix this move the driver close calls to virReleaseConnect.
      d8b36749
    • O
      Implementations of virDomainIsUpdated for drivers except qemu · f3605b33
      Osier Yang 提交于
      Except LXC and UML driver, implementations of all other drivers
      simply return 0, because these drivers doesn't have config both
      in memory and on disk, no need to track if the domain of these
      drivers updated or not.
      
      Rename "xenUnifiedDomainisPersistent" to "xenUnifiedDomainIsPersistent"
      
      * esx/esx_driver.c
      * lxc/lxc_driver.c
      * opennebula/one_driver.c
      * openvz/openvz_driver.c
      * phyp/phyp_driver.c
      * test/test_driver.c
      * uml/uml_driver.c
      * vbox/vbox_tmpl.c
      * xen/xen_driver.c
      * xenapi/xenapi_driver.c
      f3605b33
  7. 24 11月, 2010 5 次提交
    • O
      implement callback function for qemu driver · c1fb9166
      Osier Yang 提交于
      * src/qemu/qemu_driver.c (add function qemuDomainIsUpdated)
      c1fb9166
    • O
      implement the remote protocol · 313215e1
      Osier Yang 提交于
      * daemon/remote.c
      * daemon/remote_dispatch_args.h
      * daemon/remote_dispatch_prototypes.h
      * daemon/remote_dispatch_ret.h
      * daemon/remote_dispatch_table.h
      * src/remote/remote_driver.c
      * src/remote/remote_protocol.c
      * src/remote/remote_protocol.h
      * src/remote/remote_protocol.x
      * src/remote_protocol-structs
      313215e1
    • O
      implement public API virDomainIsUpdated · 20a017df
      Osier Yang 提交于
      * src/libvirt.c
      20a017df
    • O
      define internal driver API · 37a02efd
      Osier Yang 提交于
      * src/driver.h (new typedef, new callback member for "_virDriver")
      * src/esx/esx_driver.c
      * src/lxc/lxc_driver.c
      * src/opennebula/one_driver.c
      * src/openvz/openvz_driver.c
      * src/phyp/phyp_driver.c
      * src/qemu/qemu_driver.c
      * src/remote/remote_driver.c
      * src/test/test_driver.c
      * src/uml/uml_driver.c
      * src/vbox/vbox_tmpl.c
      * src/xen/xen_driver.c
      * src/xenapi/xenapi_driver.c
      37a02efd
    • O
      virDomainIsUpdated: define the new public API · 347d73f2
      Osier Yang 提交于
      introduce new public API "virDomainIsUpdated"
      
      * src/conf/domain_conf.h (new member "updated" for "virDomainObj")
      * src/libvirt_public.syms
      * include/libvirt/libvirt.h.in
      347d73f2