1. 02 12月, 2010 14 次提交
    • D
      Fix memory leak in logging setup · c846bc9e
      Daniel P. Berrange 提交于
      The logging setup requires const char * strings, but the
      virLogSetFromEnv() strdup's the env variables, thus causing
      a memory leak
      
      * src/util/logging.c: Avoid strdup'ing env variables
      c846bc9e
    • J
      tests: Add tests for CPU selection in qemu driver · 6fda7ea5
      Jiri Denemark 提交于
      6fda7ea5
    • J
      tests: Support for faking emulator in qemuxml2argv · 9237e955
      Jiri Denemark 提交于
      This patch allows for using custom scripts instead of /usr/bin/qemu
      emulator in domain XML. To do so, one would specify relative path to the
      custom script in <emulator/>. The path needs to be relative to
      qemuxml2argvdata directory and it will be transparently made absolute in
      runtime. The expected command line needs to contain the exact relative
      path as was used in domain XML.
      
      The problem is RelaxNG schema for domain XML only allows for absolute
      path within <emulator/>. To workaround it, an extra '/' must be added at
      the beginning of the path. That is, instead of "./qemu.sh" or
      "../emulator/qemu.sh" one would use "/./qemu.sh" or
      "/../emulator/qemu.sh". The extra slash is removed before further
      processing. I don't like this workaround, it's very ugly but it's the
      best option I was able to come up with. Relaxing domain XML schema is
      not an option IMO.
      9237e955
    • J
      schemas: Fix cpu element schema · a7283d84
      Jiri Denemark 提交于
      Both vendor and topology elements are optional.
      a7283d84
    • O
      virsh: Remove using phy as default disk driver in cmdAttachDisk · 84f7b286
      Osier Yang 提交于
      * tools/virsh.c (virsh shouldn't use 'phy' as the disk driver if
      user doesn't specify "--driver", it causes bugs, as not all of
      hypervisor driver supports 'phy', and actually hypervisor should
      known the correct default disk driver and subdriver, so remove it)
      84f7b286
    • E
      maint: update .gitignore · 3ea59d6a
      Eric Blake 提交于
      * .gitignore: Ignore recent built file, sort.
      3ea59d6a
    • G
      OpenVZ: drop fd leackage · fab5a25c
      Guido Günther 提交于
      Drop unused (and unclosed) errfd and close outfd on exit. Otherwise
      polling the running domains with virt-manager let's us quickly run out
      of fds.
      fab5a25c
    • O
      qemu: Use macro for max and min vnc port instead of number · 401979a4
      Osier Yang 提交于
      * src/qemu/qemu_driver.c (though MACROS QEMU_VNC_PORT_MAX, and
      QEMU_VNC_PORT_MIN are defined at the beginning, numbers (65535, 5900)
      are still used, replace them)
      401979a4
    • 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 7 次提交
    • 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