1. 20 4月, 2012 8 次提交
    • E
      conf: remove redundant () · 6877a34d
      Eric Blake 提交于
      I almost copied-and-pasted some redundant () into my new code,
      and figured a general cleanup prereq patch would be better instead.
      
      No semantic change.
      
      * src/conf/domain_conf.c (virDomainLeaseDefParseXML)
      (virDomainDiskDefParseXML, virDomainFSDefParseXML)
      (virDomainActualNetDefParseXML, virDomainNetDefParseXML)
      (virDomainGraphicsDefParseXML, virDomainVideoAccelDefParseXML)
      (virDomainVideoDefParseXML, virDomainHostdevFind)
      (virDomainControllerInsertPreAlloced, virDomainDefParseXML)
      (virDomainObjParseXML, virDomainCpuSetFormat)
      (virDomainCpuSetParse, virDomainDiskDefFormat)
      (virDomainActualNetDefFormat, virDomainNetDefFormat)
      (virDomainTimerDefFormat, virDomainGraphicsListenDefFormat)
      (virDomainDefFormatInternal, virDomainNetGetActualHostdev)
      (virDomainNetGetActualBandwidth, virDomainGraphicsGetListen):
      Reduce extra ().
      6877a34d
    • E
      build: avoid strtol and strtod · ae27f341
      Eric Blake 提交于
      Ensure we don't introduce any more lousy integer parsing in new
      code, while avoiding a scrub-down of existing legacy code.
      
      Note that we also need to enable sc_prohibit_atoi_atof (see cfg.mk
      local-checks-to-skip) before we are bulletproof, but that also
      entails scrubbing I'm not ready to do at the moment.
      
      * src/util/util.c (virStrToLong_i, virStrToLong_ui)
      (virStrToLong_l, virStrToLong_ul, virStrToLong_ll)
      (virStrToLong_ull, virStrToDouble): Mark exemptions.
      * src/util/virmacaddr.c (virMacAddrParse): Likewise.
      * cfg.mk (sc_prohibit_strtol): New syntax check.
      (exclude_file_name_regexp--sc_prohibit_strtol): Ignore files that
      I'm not willing to fix yet.
      (local-checks-to-skip): Re-enable sc_prohibit_atoi_atof.
      ae27f341
    • E
      conf: tighten up XML integer parsing · c09acad3
      Eric Blake 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=617711 reported that
      even with my recent patched to allow <memory unit='G'>1</memory>,
      people can still get away with trying <memory>1G</memory> and
      silently get <memory unit='KiB'>1</memory> instead.  While
      virt-xml-validate catches the error, our C parser did not.
      
      Not to mention that it's always fun to fix bugs while reducing
      lines of code.  :)
      
      * src/conf/domain_conf.c (virDomainParseMemory): Check for parse error.
      (virDomainDefParseXML): Avoid strtoll.
      * src/conf/storage_conf.c (virStorageDefParsePerms): Likewise.
      * src/util/xml.c (virXPathLongBase, virXPathULongBase)
      (virXPathULongLong, virXPathLongLong): Likewise.
      c09acad3
    • E
      virsh: avoid strtol · bb65c8af
      Eric Blake 提交于
      We were forgetting to check errno for overflow.
      
      * tools/virsh.c (get_integer_keycode, vshCommandOptInt)
      (vshCommandOptUInt, vshCommandOptUL, vshCommandOptLongLong)
      (vshCommandOptULongLong): Rewrite to be safer.
      bb65c8af
    • E
      build: avoid type-punning in vbox · 1aeacfd5
      Eric Blake 提交于
      Commit 78345c68 makes at least gcc 4.1.2 on RHEL 5 complain:
      
      cc1: warnings being treated as errors
      In file included from vbox/vbox_V4_0.c:13:
      vbox/vbox_tmpl.c: In function 'vboxDomainUndefineFlags':
      vbox/vbox_tmpl.c:5298: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
      
      * src/vbox/vbox_tmpl.c (vboxDomainUndefineFlags): Use union to
      avoid compiler warning.
      1aeacfd5
    • E
      build: fix fresh checkout on RHEL5 · c9cd419c
      Eric Blake 提交于
      Building a fresh checkout on RHEL 5 has been broken since commit
      29db7a00, due to a gnulib regression in the bootstrap script
      (incremental builds from a checkout earlier than that point were
      okay, though).
      
      * .gnulib: Update to latest, for bootstrap fixes.
      * bootstrap: Resync from gnulib.
      * gnulib/local/top/maint.mk.diff: Drop patch that was added
      upstream in the meantime.
      c9cd419c
    • E
      virsh: avoid uninitialized memory usage · 2aed9a97
      Eric Blake 提交于
      Detected by valgrind, via Alex Jia.  Caused by imcomplete
      copy-and-paste from vshWatchJob in commit 3b96a892.
      
      * tools/virsh.c (cmdBlockPull): fix uninitialized memory usage.
      
      * How to reproduce?
      $ qemu-img create /var/lib/libvirt/images/test 1M
      $ cat > /tmp/test.xml <<EOF
      <domain type='qemu'>
        <name>test</name>
        <memory>219200</memory>
        <vcpu>1</vcpu>
        <os>
          <type arch='x86_64'>hvm</type>
          <boot dev='hd'/>
        </os>
        <devices>
          <disk type='file' device='disk'>
            <driver name='qemu' type='raw'/>
            <source file='/var/lib/libvirt/images/test'/>
            <target dev='vda' bus='virtio'/>
          </disk>
          <input type='mouse' bus='ps2'/>
          <graphics type='spice' autoport='yes' listen='0.0.0.0'/>
        </devices>
      </domain>
      EOF
      $ virsh define /tmp/test.xml
      $ valgrind -v virsh blockpull test /var/lib/libvirt/images/test --wait
      
      actual result:
      
      ==10906== 1 errors in context 1 of 1:
      ==10906== Syscall param rt_sigaction(act->sa_flags) points to uninitialised byte(s)
      ==10906==    at 0x39CF80F5BE: __libc_sigaction (sigaction.c:67)
      ==10906==    by 0x43016C: cmdBlockPull (virsh.c:7638)
      ==10906==    by 0x4150D4: vshCommandRun (virsh.c:18574)
      ==10906==    by 0x425E73: main (virsh.c:20178)
      ==10906==  Address 0x7fefffae8 is on thread 1's stack
      2aed9a97
    • D
      The policy kit and HAL node device drivers both require a · 2223ea98
      Daniel P. Berrange 提交于
      DBus connection. The HAL device code further requires that
      the DBus connection is integrated with the event loop and
      provides such glue logic itself.
      
      The forthcoming FirewallD integration also requires a
      dbus connection with event loop integration. Thus we need
      to pull the current event loop glue out of the HAL driver.
      
      Thus we create src/util/virdbus.{c,h} files. This contains
      just one method virDBusGetSystemBus() which obtains a handle
      to the single shared system bus instance, with event glue
      automagically setup.
      2223ea98
  2. 19 4月, 2012 5 次提交
  3. 18 4月, 2012 7 次提交
    • D
      util: only register callbacks for CREATE operations in virnetdevmacvlan.c · f6146c35
      D. Herrendoerfer 提交于
      Currently upon a migration a callback is created when a 802.1qbg link
      is set to PREASSOCIATE, this should not happen because this is a no-op
      on most switches, and does not lead to an ASSOCIATE state.  This patch
      only creates callbacks when CREATE or RESTORE is requested.  Migration
      and libvirtd restart scenarios are already handled elsewhere.
      Signed-off-by: ND. Herrendoerfer <d.herrendoerfer@herrendoerfer.name>
      f6146c35
    • S
      Fix a memory leak · 25fce290
      Stefan Berger 提交于
      The below patch fixes the following memory leak.
      
      ==20624== 24 bytes in 2 blocks are definitely lost in loss record 532 of 1,867
      ==20624==    at 0x4A05E46: malloc (vg_replace_malloc.c:195)
      ==20624==    by 0x38EC27FC01: strdup (strdup.c:43)
      ==20624==    by 0x4EB6BA3: virDomainChrSourceDefCopy (domain_conf.c:1122)
      ==20624==    by 0x495D76: qemuProcessFindCharDevicePTYs (qemu_process.c:1497)
      ==20624==    by 0x498321: qemuProcessWaitForMonitor (qemu_process.c:1258)
      ==20624==    by 0x49B5F9: qemuProcessStart (qemu_process.c:3652)
      ==20624==    by 0x468B5C: qemuDomainObjStart (qemu_driver.c:4753)
      ==20624==    by 0x469171: qemuDomainStartWithFlags (qemu_driver.c:4810)
      ==20624==    by 0x4F21735: virDomainCreate (libvirt.c:8153)
      ==20624==    by 0x4302BF: remoteDispatchDomainCreateHelper (remote_dispatch.h:852)
      ==20624==    by 0x4F72C14: virNetServerProgramDispatch (virnetserverprogram.c:416)
      ==20624==    by 0x4F6D690: virNetServerHandleJob (virnetserver.c:164)
      ==20624==    by 0x4E8F43D: virThreadPoolWorker (threadpool.c:144)
      ==20624==    by 0x4E8EAB5: virThreadHelper (threads-pthread.c:161)
      ==20624==    by 0x38EC606CCA: start_thread (pthread_create.c:301)
      ==20624==    by 0x38EC2E0C2C: clone (clone.S:115) 
      25fce290
    • E
      blockjob: add virsh blockpull --wait · 3b96a892
      Eric Blake 提交于
      I'm tired of shell-scripting to wait for completion of a block pull,
      when virsh can be taught to do the same.  I couldn't quite reuse
      vshWatchJob, as this is not a case of a long-running command where
      a second thread must be used to probe job status (at least, not unless
      I make virsh start doing blocking waits for an event to fire), but it
      served as inspiration for my simpler single-threaded loop.  There is
      up to a half-second delay between sending SIGINT and the job being
      aborted, but I didn't think it worth the complexity of a second thread
      and use of poll() just to minimize that delay.
      
      * tools/virsh.c (cmdBlockPull): Add new options to wait for
      completion.
      (blockJobImpl): Add argument.
      (cmdBlockJob): Adjust caller.
      * tools/virsh.pod (blockjob): Document new mode.
      3b96a892
    • E
      qemu: use consistent error when qemu binary is too old · 6fb8a64d
      Eric Blake 提交于
      Most of our errors complaining about an inability to support a
      particular action due to qemu limitations used CONFIG_UNSUPPORTED,
      but we had a few outliers.  Reported by Jiri Denemark.
      
      * src/qemu/qemu_command.c (qemuBuildDriveDevStr): Prefer
      CONFIG_UNSUPPORTED.
      * src/qemu/qemu_driver.c (qemuDomainReboot)
      (qemuDomainBlockJobImpl): Likewise.
      * src/qemu/qemu_hotplug.c (qemuDomainAttachPciControllerDevice):
      Likewise.
      * src/qemu/qemu_monitor.c (qemuMonitorTransaction)
      (qemuMonitorBlockJob, qemuMonitorSystemWakeup): Likewise.
      6fb8a64d
    • E
      virsh: minor syntactic cleanups · 4f06777e
      Eric Blake 提交于
      No semantic change.
      
      * tools/virsh.c: Fix some spacing issues, {} usage, long lines,
      and redundant ().
      4f06777e
    • J
      vbox: avoid provoking assertions in VBoxSVC · 78345c68
      Jean-Baptiste Rouault 提交于
      Passing a NULL pointer to IMachine::delete virtualbox API
      causes VBoxSVC to raise an assertion. This patch passes
      an empty array instead.
      78345c68
    • O
      docs: Improve the schema for fs device · 7adeac67
      Osier Yang 提交于
      <filesystemtgt> is redundant, as every group uses it; <address>
      shouldn't be in <filesystemtgt> in case of the meaning could be
      "filesystemtarget"; The elements <address>, <alias>, <target>,
      ... should be interleaved.
      7adeac67
  4. 17 4月, 2012 10 次提交
    • O
      conf: Do not parse cpuset only if the placement is auto · 74e772dd
      Osier Yang 提交于
      So that a domain xml which doesn't have "placement" specified, but
      "cpuset" is specified, could be parsed. And in this case, the
      "placement" mode will be set as "static".
      74e772dd
    • O
      tests: Update read-bufsiz to delete the UUID of vm XML · 79568df0
      Osier Yang 提交于
      Since now we have fixed domain UUID for test driver, defining
      a domain with different name but same UUID doesn't work any
      more. This patch delete the UUID from the dumped XML so that
      it could be generated.
      79568df0
    • O
      test: Set the fixed uuid for the default XMLs · 4010217e
      Osier Yang 提交于
      The objects (domain, pool, network, etc) for testing are defined/
      started each time when opening a connect to test driver, and thus
      the UUID for the objects will be generated each time, with different
      values. e.g.
      
      % for i in {1..3}; do ./tools/virsh --connect \
        test:///default dumpxml test | grep uuid; done
        <uuid>a1b6ee1f-97de-f0ee-617a-0cdb74947df5</uuid>
        <uuid>ee68d7d2-3eb9-593e-2769-797ce1f4c4aa</uuid>
        <uuid>fecb1d3a-918a-8412-e534-76192cf32b18</uuid>
      
      It's the potential bug which can cause operations like below to fail:
      
      $ virsh -c test:///default dumpxml test > test.xml
      
      [ Some modificatons, though it's not supported, but it should work ]
      
      $ virsh -c test:///default define test.xml
      
      This patch set fixed UUID for objects which support it. (domain,
      pool, network).
      4010217e
    • O
      qemu: Split ide-drive into ide-cd and ide-hd · a4cda054
      Osier Yang 提交于
      A "ide-drive" device can be either a hard disk or a CD-ROM,
      if there is ",media=cdrom" specified for the backend, it's
      a CD-ROM, otherwise it's a hard disk.
      
      Upstream qemu splitted "ide-drive" into "ide-hd" and "ide-cd"
      since commit 1f56e32, and ",media=cdrom" is not required for
      ide-cd anymore. "ide-drive" is still supported for backwards
      compatibility, but no doubt we should go foward.
      a4cda054
    • O
      qemu: Split scsi-disk into into scsi-hd and scsi-cd · 02e8d0cf
      Osier Yang 提交于
      A "scsi-disk" device can be either a hard disk or a CD-ROM,
      if there is ",media=cdrom" specified for the backend, it's
      a CD-ROM, otherwise it's a hard disk.
      
      But upstream qemu splitted "scsi-disk" into "scsi-hd" and
      "scsi-cd" since commit b443ae, and ",media=cdrom" is not
      required for scsi-cd anymore. "scsi-disk" is still supported
      for backwards compatibility, but no doubt we should go
      foward.
      02e8d0cf
    • J
      Do not enforce source type of console[0] · dde91ab9
      Jan Kiszka 提交于
      If console[0] is an alias for serial[0], do not enforce the former to
      have a PTY source type. This breaks serial consoles on stdio and makes
      no sense.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      dde91ab9
    • S
      xen: do not use ioemu type for any emulated NIC · 10c31135
      Stefan Bader 提交于
      When using the xm/xend stack to manage instances there is a bug
      that causes the emulated interfaces to be unusable when the vif
      config contains type=ioemu.
      
      The current code already has a special quirk to not use this
      keyword if no specific model is given for the emulated NIC
      (defaulting to rtl8139).
      Essentially it works because regardless of the type argument,i
      the Xen stack always creates emulated and paravirt interfaces and
      lets the guest decide which one to use. So neither xl nor xm stack
      actually require the type keyword for emulated NICs.
      Signed-off-by: NStefan Bader <stefan.bader@canonical.com>
      10c31135
    • O
      openvz: Correct the comments for new node APIs · bfc22645
      Osier Yang 提交于
      It should be 0.9.12 instead of 0.9.11
      bfc22645
    • C
      docs: fix 'omitted' typo in <cputune> doc · 684f3ebb
      Christophe Fergeau 提交于
      'omitted' was mispelt 'commited' twice. One of the sentences with
      the typo was also missing an 'is' ('each VCPU *is* pinned to all...')
      which I added in this commit while I was at it.
      684f3ebb
    • C
      3e0513af
  5. 16 4月, 2012 8 次提交
  6. 15 4月, 2012 1 次提交
  7. 14 4月, 2012 1 次提交
    • P
      virnetdev: Check for defined IFLA_VF_* · d7451bdd
      Philipp Hahn 提交于
      The linux-2.6.32 kernel header does not yet define IFLA_VF_MAX and others,
      which breaks compiling a new libvirt on old systems like Debian Squeeze.
      
      (I also have to add --without-macvtap --disable-werror --without-virtualport to
       ./configure to get it to compile.)
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      d7451bdd