Make VIR_ALLOC, virAsprintf and friend to report OOM error and
subsequently
adapt the code.
Patches available at:
git://gitorious.org/~zippy2/libvirt/michal-staging.git
branch oom2
The first two patches need to be reviewed as they weren't ACKed in the first
run. Then, 36/37 met the same fate. I'm sending the rest for completeness.
Michal Privoznik (37):
viralloc: Report OOM error on failure
Introduce OOM reporting to virAsprintf
Adapt to VIR_ALLOC and virAsprintf in docs/
Adapt to VIR_ALLOC and virAsprintf in daemon/*
Adapt to VIR_ALLOC and virAsprintf in src/access/*
Adapt to VIR_ALLOC and virAsprintf in src/conf/*
Adapt to VIR_ALLOC and virAsprintf in src/cpu/*
Adapt to VIR_ALLOC and virAsprintf in src/esx/*
Adapt to VIR_ALLOC and virAsprintf in src/hyperv/*
Adapt to VIR_ALLOC and virAsprintf in src/interface/*
Adapt to VIR_ALLOC and virAsprintf in src/libxl/*
Adapt to VIR_ALLOC and virAsprintf in src/locking/*
Adapt to VIR_ALLOC and virAsprintf in src/lxc/*
Adapt to VIR_ALLOC and virAsprintf in src/node_device/*
Adapt to VIR_ALLOC and virAsprintf in src/network/*
Adapt to VIR_ALLOC and virAsprintf in src/nwfilter/*
Adapt to VIR_ALLOC and virAsprintf in src/openvz/*
Adapt to VIR_ALLOC and virAsprintf in src/parallels/*
Adapt to VIR_ALLOC and virAsprintf in src/phyp/*
Adapt to VIR_ALLOC and virAsprintf in src/qemu/*
Adapt to VIR_ALLOC and virAsprintf in src/remote/*
Adapt to VIR_ALLOC and virAsprintf in src/rpc/*
Adapt to VIR_ALLOC and virAsprintf in src/secret/*
Adapt to VIR_ALLOC and virAsprintf in src/security/*
Adapt to VIR_ALLOC and virAsprintf in src/storage/*
Adapt to VIR_ALLOC and virAsprintf in src/test/*
Adapt to VIR_ALLOC and virAsprintf in src/uml/*
Adapt to VIR_ALLOC and virAsprintf in src/util/*
Adapt to VIR_ALLOC and virAsprintf in src/vbox/*
Adapt to VIR_ALLOC and virAsprintf in src/vmware/*
Adapt to VIR_ALLOC and virAsprintf in src/vmx/*
Adapt to VIR_ALLOC and virAsprintf in src/xen/*
Adapt to VIR_ALLOC and virAsprintf in src/xenapi/*
Adapt to VIR_ALLOC and virAsprintf in src/xenxs/*
Adapt to VIR_ALLOC and virAsprintf in src/*
Adapt to VIR_ALLOC and virAsprintf in tests/*
Adapt to VIR_ALLOC and virAsprintf in tools/*
HACKING | 20 +-
cfg.mk | 2 +-
daemon/libvirtd-config.c | 12 +-
daemon/libvirtd.c | 24 +-
daemon/remote.c | 234 +++++---------------
daemon/stream.c | 4 +-
docs/hacking.html.in | 20 +-
po/POTFILES.in | 1 +
python/libvirt-override.c | 102 ++++-----
src/access/viraccessdriverpolkit.c | 4 +-
src/access/viraccessdriverstack.c | 4 +-
src/access/viraccessmanager.c | 4 +-
src/conf/cpu_conf.c | 34 +--
src/conf/domain_audit.c | 36 +--
src/conf/domain_conf.c | 334 +++++++++-------------------
src/conf/domain_event.c | 30 +--
src/conf/interface_conf.c | 35 +--
src/conf/netdev_bandwidth_conf.c | 12 +-
src/conf/netdev_vlan_conf.c | 4 +-
src/conf/netdev_vport_profile_conf.c | 4 +-
src/conf/network_conf.c | 120 +++-------
src/conf/node_device_conf.c | 29 +--
src/conf/nwfilter_conf.c | 33 +--
src/conf/nwfilter_ipaddrmap.c | 8 +-
src/conf/nwfilter_params.c | 35 +--
src/conf/secret_conf.c | 4 +-
src/conf/snapshot_conf.c | 47 ++--
src/conf/storage_conf.c | 38 +---
src/conf/storage_encryption_conf.c | 12 +-
src/conf/virchrdev.c | 14 +-
src/cpu/cpu.c | 4 +-
src/cpu/cpu_arm.c | 6 +-
src/cpu/cpu_generic.c | 12 +-
src/cpu/cpu_powerpc.c | 20 +-
src/cpu/cpu_s390.c | 4 +-
src/cpu/cpu_x86.c | 86 +++----
src/driver.c | 4 +-
src/esx/esx_driver.c | 62 ++----
src/esx/esx_network_driver.c | 16 +-
src/esx/esx_storage_backend_iscsi.c | 4 +-
src/esx/esx_storage_backend_vmfs.c | 72 ++----
src/esx/esx_util.c | 4 +-
src/esx/esx_vi.c | 50 ++---
src/esx/esx_vi.h | 3 +-
src/esx/esx_vi_types.c | 3 +-
src/fdstream.c | 4 +-
src/hyperv/hyperv_driver.c | 21 +-
src/hyperv/hyperv_util.c | 4 +-
src/hyperv/hyperv_wmi.c | 8 +-
src/interface/interface_backend_netcf.c | 27 +--
src/interface/interface_backend_udev.c | 33 +--
src/libvirt.c | 21 +-
src/libvirt_private.syms | 4 +-
src/libxl/libxl_conf.c | 18 +-
src/libxl/libxl_driver.c | 49 +---
src/locking/lock_daemon.c | 33 +--
src/locking/lock_daemon_config.c | 8 +-
src/locking/lock_driver_lockd.c | 23 +-
src/locking/lock_driver_sanlock.c | 28 +--
src/locking/lock_manager.c | 16 +-
src/lxc/lxc_cgroup.c | 4 +-
src/lxc/lxc_conf.c | 5 +-
src/lxc/lxc_container.c | 77 ++-----
src/lxc/lxc_controller.c | 47 +---
src/lxc/lxc_driver.c | 92 ++------
src/lxc/lxc_fuse.c | 12 +-
src/lxc/lxc_monitor.c | 4 +-
src/lxc/lxc_process.c | 30 +--
src/network/bridge_driver.c | 138 ++++--------
src/node_device/node_device_driver.c | 4 +-
src/node_device/node_device_udev.c | 18 +-
src/nodeinfo.c | 61 ++---
src/nwfilter/nwfilter_dhcpsnoop.c | 29 +--
src/nwfilter/nwfilter_driver.c | 13 +-
src/nwfilter/nwfilter_ebiptables_driver.c | 46 ++--
src/nwfilter/nwfilter_gentech_driver.c | 24 +-
src/nwfilter/nwfilter_learnipaddr.c | 12 +-
src/openvz/openvz_conf.c | 42 ++--
src/openvz/openvz_driver.c | 10 +-
src/parallels/parallels_driver.c | 65 ++----
src/parallels/parallels_network.c | 24 +-
src/parallels/parallels_storage.c | 50 ++---
src/parallels/parallels_utils.c | 4 +-
src/phyp/phyp_driver.c | 95 ++------
src/qemu/qemu_agent.c | 42 ++--
src/qemu/qemu_capabilities.c | 69 ++----
src/qemu/qemu_cgroup.c | 4 +-
src/qemu/qemu_command.c | 357 ++++++++++--------------------
src/qemu/qemu_conf.c | 88 +++-----
src/qemu/qemu_domain.c | 59 ++---
src/qemu/qemu_driver.c | 124 +++--------
src/qemu/qemu_hotplug.c | 84 ++-----
src/qemu/qemu_migration.c | 94 +++-----
src/qemu/qemu_monitor.c | 33 +--
src/qemu/qemu_monitor_json.c | 118 +++-------
src/qemu/qemu_monitor_text.c | 233 +++++--------------
src/qemu/qemu_process.c | 70 ++----
src/remote/remote_driver.c | 107 +++------
src/rpc/gendispatch.pl | 8 +-
src/rpc/virnetclient.c | 26 +--
src/rpc/virnetclientprogram.c | 12 +-
src/rpc/virnetclientstream.c | 4 +-
src/rpc/virnetmessage.c | 26 +--
src/rpc/virnetserver.c | 23 +-
src/rpc/virnetserverclient.c | 19 +-
src/rpc/virnetservermdns.c | 20 +-
src/rpc/virnetserverprogram.c | 8 +-
src/rpc/virnetserverservice.c | 12 +-
src/rpc/virnetsocket.c | 8 +-
src/rpc/virnetsshsession.c | 21 +-
src/rpc/virnettlscontext.c | 26 +--
src/secret/secret_driver.c | 55 ++---
src/security/security_apparmor.c | 25 +--
src/security/security_dac.c | 12 +-
src/security/security_manager.c | 12 +-
src/security/security_selinux.c | 45 ++--
src/security/security_stack.c | 8 +-
src/security/virt-aa-helper.c | 36 +--
src/storage/storage_backend.c | 35 +--
src/storage/storage_backend_disk.c | 17 +-
src/storage/storage_backend_fs.c | 31 +--
src/storage/storage_backend_iscsi.c | 27 +--
src/storage/storage_backend_logical.c | 48 +---
src/storage/storage_backend_mpath.c | 20 +-
src/storage/storage_backend_rbd.c | 18 +-
src/storage/storage_backend_scsi.c | 21 +-
src/storage/storage_backend_sheepdog.c | 4 +-
src/storage/storage_driver.c | 23 +-
src/test/test_driver.c | 91 +++-----
src/uml/uml_conf.c | 28 +--
src/uml/uml_driver.c | 36 +--
src/util/iohelper.c | 4 +-
src/util/viralloc.c | 166 ++++++++++++--
src/util/viralloc.h | 234 +++++++++++++++++---
src/util/virauth.c | 6 +-
src/util/virauthconfig.c | 16 +-
src/util/virbitmap.c | 5 +-
src/util/virbuffer.c | 8 +-
src/util/vircgroup.c | 11 +-
src/util/vircommand.c | 13 +-
src/util/virconf.c | 10 +-
src/util/virdnsmasq.c | 53 ++---
src/util/virerror.c | 6 +-
src/util/vireventpoll.c | 4 +-
src/util/virfile.c | 34 +--
src/util/virhash.c | 11 +-
src/util/viridentity.c | 4 +-
src/util/virinitctl.c | 4 +-
src/util/viriptables.c | 11 +-
src/util/virkeyfile.c | 4 +-
src/util/virlockspace.c | 37 +---
src/util/virlog.c | 28 +--
src/util/virnetdev.c | 45 +---
src/util/virnetdevbandwidth.c | 21 +-
src/util/virnetdevbridge.c | 8 +-
src/util/virnetdevmacvlan.c | 6 +-
src/util/virnetdevopenvswitch.c | 18 +-
src/util/virnetdevtap.c | 8 +-
src/util/virnetdevveth.c | 8 +-
src/util/virnetdevvlan.c | 4 +-
src/util/virnetdevvportprofile.c | 4 +-
src/util/virnetlink.c | 8 +-
src/util/virobject.c | 8 +-
src/util/virpci.c | 94 ++------
src/util/virportallocator.c | 1 -
src/util/virprocess.c | 17 +-
src/util/virrandom.c | 9 +-
src/util/virscsi.c | 28 +--
src/util/virsexpr.c | 4 +-
src/util/virsocketaddr.c | 6 +-
src/util/virstoragefile.c | 32 +--
src/util/virstring.c | 44 ++--
src/util/virstring.h | 67 +++++-
src/util/virsysinfo.c | 22 +-
src/util/virthreadpool.c | 21 +-
src/util/virthreadpthread.c | 2 +-
src/util/virtime.c | 8 +-
src/util/virtpm.c | 4 +-
src/util/virtypedparam.c | 68 ++----
src/util/viruri.c | 12 +-
src/util/virusb.c | 13 +-
src/util/virutil.c | 107 +++------
src/util/virxml.c | 1 -
src/vbox/vbox_MSCOMGlue.c | 8 +-
src/vbox/vbox_XPCOMCGlue.c | 4 +-
src/vbox/vbox_tmpl.c | 126 +++--------
src/vmware/vmware_conf.c | 33 +--
src/vmware/vmware_driver.c | 4 +-
src/vmx/vmx.c | 88 ++------
src/xen/block_stats.c | 8 +-
src/xen/xen_driver.c | 42 +---
src/xen/xen_hypervisor.c | 18 +-
src/xen/xen_inotify.c | 4 +-
src/xen/xend_internal.c | 38 +---
src/xen/xm_internal.c | 24 +-
src/xen/xs_internal.c | 24 +-
src/xenapi/xenapi_driver.c | 20 +-
src/xenapi/xenapi_utils.c | 13 +-
src/xenxs/xen_sxpr.c | 112 ++++------
src/xenxs/xen_xm.c | 204 ++++++++---------
tests/commandhelper.c | 3 +-
tests/commandtest.c | 8 +-
tests/domainsnapshotxml2xmltest.c | 2 +
tests/fchosttest.c | 2 +
tests/interfacexml2xmltest.c | 2 +
tests/libvirtdconftest.c | 4 +-
tests/lxcxml2xmltest.c | 2 +
tests/networkxml2conftest.c | 2 +
tests/networkxml2xmltest.c | 2 +
tests/nodedevxml2xmltest.c | 2 +
tests/nodeinfotest.c | 2 +
tests/nwfilterxml2xmltest.c | 2 +
tests/qemuargv2xmltest.c | 2 +
tests/qemuhelptest.c | 2 +
tests/qemumonitortestutils.c | 17 +-
tests/qemuxml2xmltest.c | 2 +
tests/securityselinuxlabeltest.c | 24 +-
tests/securityselinuxtest.c | 8 +-
tests/sexpr2xmltest.c | 2 +
tests/storagepoolxml2xmltest.c | 2 +
tests/storagevolxml2argvtest.c | 2 +
tests/storagevolxml2xmltest.c | 2 +
tests/sysinfotest.c | 2 +
tests/test_conf.c | 2 +-
tests/testutils.c | 2 +-
tests/virbuftest.c | 2 +
tests/virhashtest.c | 4 +-
tests/virnetmessagetest.c | 20 +-
tests/virshtest.c | 2 +
tests/virstoragetest.c | 5 +-
tests/xencapstest.c | 2 +
tests/xmconfigtest.c | 2 +
tests/xml2sexprtest.c | 2 +
tools/console.c | 6 +-
tools/virsh-domain-monitor.c | 4 +-
tools/virsh-domain.c | 28 +--
tools/virsh.c | 1 -
tools/virt-host-validate-common.c | 2 +
238 files changed, 2444 insertions(+), 4975 deletions(-)
Thank you guys. I've pushed this.
Michal