All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/25] error: auto propagated local_err
@ 2019-09-24 20:08 Vladimir Sementsov-Ogievskiy
  2019-09-24 20:08 ` [PATCH v3 01/25] errp: rename errp to errp_in where it is IN-argument Vladimir Sementsov-Ogievskiy
                   ` (25 more replies)
  0 siblings, 26 replies; 47+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2019-09-24 20:08 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Paul Burton, Peter Maydell, Jeff Cody, Jason Wang,
	Mark Cave-Ayland, Michael Roth, Gerd Hoffmann, Subbaraya Sundeep,
	qemu-block, Juan Quintela, Aleksandar Rikalo, Michael S. Tsirkin,
	Markus Armbruster, Halil Pasic, Christian Borntraeger,
	Marc-André Lureau, David Gibson, Eric Farman,
	Eduardo Habkost, Greg Kurz, Yuval Shaia, Dr. David Alan Gilbert,
	Alex Williamson, integration, David Hildenbrand, John Snow,
	Richard Henderson, Kevin Wolf, vsementsov,
	Daniel P. Berrangé,
	Cornelia Huck, qemu-s390x, Max Reitz, qemu-arm, qemu-ppc,
	Paolo Bonzini

Hi all!

Here is a proposal of auto propagation for local_err, to not call
error_propagate on every exit point, when we deal with local_err.

There are also two issues with errp:

1. error_fatal & error_append_hint: user can't see these
hints, because exit() happens in error_setg earlier than hint is
appended. [Reported by Greg Kurz]

2. error_abort & error_propagate: when we wrap
error_abort by local_err+error_propagate, resulting coredump will
refer to error_propagate and not to the place where error happened.
(the macro itself don't fix the issue, but it allows to [3.] drop all
local_err+error_propagate pattern, which will definitely fix the issue)
[Reported by Kevin Wolf]

Still, applying new macro to all errp-functions is a huge task, which is
impossible to solve in one series.

So, here is a minimum: solve only [1.], by adding new macro to all
errp-functions which wants to call error_append_hint.

v3: plan B: fix only error_append_hint users, as a first step.
01: - new errp-based API dropped, so now patch is smaller.
    - slightly adjust commit message
    - keep Eric's r-b
02: - no new API, so just open-code fix
    - keep Eric's r-b
03: - simplify the code [Eric]
04: - grammar and wording
    - drop extra unused variable
others: new

Vladimir Sementsov-Ogievskiy (25):
  errp: rename errp to errp_in where it is IN-argument
  hw/core/loader-fit: fix freeing errp in fit_load_fdt
  net/net: fix local variable shadowing in net_client_init
  error: auto propagated local_err
  scripts: add coccinelle script to fix error_append_hint usage
  python: add commit-per-subsystem.py
  s390: Fix error_append_hint usage
  ARM TCG CPUs: Fix error_append_hint usage
  PowerPC TCG CPUs: Fix error_append_hint usage
  arm: Fix error_append_hint usage
  SmartFusion2: Fix error_append_hint usage
  PCI: Fix error_append_hint usage
  SCSI: Fix error_append_hint usage
  USB: Fix error_append_hint usage
  VFIO: Fix error_append_hint usage
  virtio: Fix error_append_hint usage
  virtio-9p: Fix error_append_hint usage
  block: Fix error_append_hint usage
  chardev: Fix error_append_hint usage
  cmdline: Fix error_append_hint usage
  QOM: Fix error_append_hint usage
  Migration: Fix error_append_hint usage
  Sockets: Fix error_append_hint usage
  nbd: Fix error_append_hint usage
  PVRDMA: Fix error_append_hint usage

 include/monitor/hmp.h                         |  2 +-
 include/qapi/error.h                          | 37 +++++++++-
 ui/vnc.h                                      |  2 +-
 block/backup.c                                |  1 +
 block/dirty-bitmap.c                          |  1 +
 block/file-posix.c                            |  3 +
 block/gluster.c                               |  2 +
 block/qcow.c                                  |  1 +
 block/qcow2.c                                 |  1 +
 block/vhdx-log.c                              |  1 +
 block/vpc.c                                   |  1 +
 chardev/spice.c                               |  1 +
 hw/9pfs/9p-local.c                            |  1 +
 hw/9pfs/9p-proxy.c                            |  1 +
 hw/arm/msf2-soc.c                             |  1 +
 hw/arm/virt.c                                 |  2 +
 hw/core/loader-fit.c                          |  1 +
 hw/intc/arm_gicv3_kvm.c                       |  1 +
 hw/misc/msf2-sysreg.c                         |  1 +
 hw/pci-bridge/pcie_root_port.c                |  1 +
 hw/ppc/mac_newworld.c                         |  1 +
 hw/ppc/spapr.c                                |  1 +
 hw/ppc/spapr_pci.c                            |  1 +
 hw/rdma/vmw/pvrdma_main.c                     |  1 +
 hw/s390x/s390-ccw.c                           |  1 +
 hw/scsi/scsi-disk.c                           |  1 +
 hw/scsi/scsi-generic.c                        |  1 +
 hw/usb/ccid-card-emulated.c                   |  1 +
 hw/vfio/common.c                              |  2 +
 hw/vfio/pci.c                                 |  2 +
 hw/virtio/virtio-pci.c                        |  2 +
 migration/migration.c                         |  1 +
 monitor/hmp-cmds.c                            |  8 +--
 nbd/client.c                                  |  1 +
 nbd/server.c                                  |  1 +
 net/net.c                                     | 17 ++---
 qdev-monitor.c                                |  2 +
 target/ppc/kvm.c                              |  2 +
 ui/vnc.c                                      | 10 +--
 util/error.c                                  |  8 +--
 util/qemu-option.c                            |  2 +
 util/qemu-sockets.c                           |  2 +
 python/commit-per-subsystem.py                | 69 +++++++++++++++++++
 .../fix-error_append_hint-usage.cocci         | 25 +++++++
 44 files changed, 198 insertions(+), 26 deletions(-)
 create mode 100755 python/commit-per-subsystem.py
 create mode 100644 scripts/coccinelle/fix-error_append_hint-usage.cocci

CC: John Snow <jsnow@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
CC: Max Reitz <mreitz@redhat.com>
CC: Fam Zheng <fam@euphon.net>
CC: Jeff Cody <codyprime@gmail.com>
CC: "Marc-André Lureau" <marcandre.lureau@redhat.com>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Greg Kurz <groug@kaod.org>
CC: Subbaraya Sundeep <sundeep.lkml@gmail.com>
CC: Peter Maydell <peter.maydell@linaro.org>
CC: Paul Burton <pburton@wavecomp.com>
CC: Aleksandar Rikalo <arikalo@wavecomp.com>
CC: "Michael S. Tsirkin" <mst@redhat.com>
CC: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
CC: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
CC: David Gibson <david@gibson.dropbear.id.au>
CC: Yuval Shaia <yuval.shaia@oracle.com>
CC: Cornelia Huck <cohuck@redhat.com>
CC: Eric Farman <farman@linux.ibm.com>
CC: Richard Henderson <rth@twiddle.net>
CC: David Hildenbrand <david@redhat.com>
CC: Halil Pasic <pasic@linux.ibm.com>
CC: Christian Borntraeger <borntraeger@de.ibm.com>
CC: Gerd Hoffmann <kraxel@redhat.com>
CC: Alex Williamson <alex.williamson@redhat.com>
CC: Markus Armbruster <armbru@redhat.com>
CC: Michael Roth <mdroth@linux.vnet.ibm.com>
CC: Juan Quintela <quintela@redhat.com>
CC: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
CC: Eric Blake <eblake@redhat.com>
CC: Jason Wang <jasowang@redhat.com>
CC: "Daniel P. Berrangé" <berrange@redhat.com>
CC: Eduardo Habkost <ehabkost@redhat.com>
CC: qemu-block@nongnu.org
CC: qemu-devel@nongnu.org
CC: integration@gluster.org
CC: qemu-arm@nongnu.org
CC: qemu-ppc@nongnu.org
CC: qemu-s390x@nongnu.org

-- 
2.21.0



^ permalink raw reply	[flat|nested] 47+ messages in thread

end of thread, other threads:[~2019-10-01  9:22 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-24 20:08 [PATCH v3 00/25] error: auto propagated local_err Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 01/25] errp: rename errp to errp_in where it is IN-argument Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 02/25] hw/core/loader-fit: fix freeing errp in fit_load_fdt Vladimir Sementsov-Ogievskiy
2019-09-24 20:38   ` Eric Blake
2019-09-25  7:24     ` Vladimir Sementsov-Ogievskiy
2019-09-25  7:45       ` Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 03/25] net/net: fix local variable shadowing in net_client_init Vladimir Sementsov-Ogievskiy
2019-09-24 20:39   ` Eric Blake
2019-09-24 20:08 ` [PATCH v3 04/25] error: auto propagated local_err Vladimir Sementsov-Ogievskiy
2019-09-24 20:46   ` Eric Blake
2019-09-30 15:12   ` Kevin Wolf
2019-09-30 15:19     ` Vladimir Sementsov-Ogievskiy
2019-09-30 16:00       ` Kevin Wolf
2019-09-30 16:26         ` Vladimir Sementsov-Ogievskiy
2019-09-30 16:39           ` Kevin Wolf
2019-10-01  8:39             ` Vladimir Sementsov-Ogievskiy
2019-10-01  9:19               ` Kevin Wolf
2019-09-24 20:08 ` [PATCH v3 05/25] scripts: add coccinelle script to fix error_append_hint usage Vladimir Sementsov-Ogievskiy
2019-09-24 20:48   ` Eric Blake
2019-09-25 16:06     ` Vladimir Sementsov-Ogievskiy
2019-09-24 20:52   ` Eric Blake
2019-09-24 20:08 ` [PATCH v3 06/25] python: add commit-per-subsystem.py Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 07/25] s390: Fix error_append_hint usage Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 08/25] ARM TCG CPUs: " Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 09/25] PowerPC " Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 10/25] arm: " Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 11/25] SmartFusion2: " Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 12/25] PCI: " Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 13/25] SCSI: " Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 14/25] USB: " Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 15/25] VFIO: " Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 16/25] virtio: " Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 17/25] virtio-9p: " Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 18/25] block: " Vladimir Sementsov-Ogievskiy
2019-09-24 21:03   ` Eric Blake
2019-09-24 20:08 ` [PATCH v3 19/25] chardev: " Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 20/25] cmdline: " Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 21/25] QOM: " Vladimir Sementsov-Ogievskiy
2019-09-24 20:08 ` [PATCH v3 22/25] Migration: " Vladimir Sementsov-Ogievskiy
2019-09-24 20:09 ` [PATCH v3 23/25] Sockets: " Vladimir Sementsov-Ogievskiy
2019-09-24 21:07   ` Eric Blake
2019-09-24 20:09 ` [PATCH v3 24/25] nbd: " Vladimir Sementsov-Ogievskiy
2019-09-24 21:12   ` Eric Blake
2019-09-25  7:39     ` Vladimir Sementsov-Ogievskiy
2019-09-24 20:09 ` [PATCH v3 25/25] PVRDMA: " Vladimir Sementsov-Ogievskiy
2019-09-25 10:09 ` [PATCH v3 00/25] error: auto propagated local_err no-reply
2019-09-25 10:16   ` Vladimir Sementsov-Ogievskiy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.