From: Markus Armbruster <armbru@redhat.com>
To: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Cc: qemu-devel@nongnu.org, marcandre.lureau@redhat.com
Subject: Re: [PATCH 12/12] error: Kill @error_warn
Date: Sat, 09 Aug 2025 16:42:06 +0200 [thread overview]
Message-ID: <87a548sgjl.fsf@pond.sub.org> (raw)
In-Reply-To: <baeed4ff-9366-482c-9b08-85e0fdcc6ebb@rsg.ci.i.u-tokyo.ac.jp> (Akihiko Odaki's message of "Sat, 9 Aug 2025 19:27:55 +0900")
Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp> writes:
> On 2025/08/09 17:30, Markus Armbruster wrote:
[...]
>> As I wrote, the defects are all fixable. However, there has been so
>> little use of &error_warn, and so much of it has been unclean or
>> otherwise undesirable. It's obviously prone to misuse. I think we're
>> better off without it.
>>
>> See also the memo "Abuse of warnings for unhandled errors and
>> programming errors" I posted yesterday.
>
> It is insightful. The cover letter can have a reference to it and this patch can have similar description.
>
> However I still have a few counterarguments:
>
> A reason of the &error_warn usage may be caused by the complexity
> to deal with unhandled errors and programming errors. If so, adding mechanisms to ease that may naturally sufficiently reduce the wrong usage added in the future.
>
> The "&error_fatal without exit(1)" may be good enough for unhandled errors. For example, "[PATCH v10 00/27] migration: propagate vTPM errors using Error objects" would not have used &error_warn if there is the "&error_fatal without exit(1)".
I fear it would be prone to misuse.
Consider
Error *err = NULL;
if (!frobnicate(a, b, c, &err)) {
error_report_err(err);
// cleanup here, if any
return false;
}
With a special &error_fatal_without_exit (terrible name, but you get
what I mean), we could shorten this to
if (!frobnicate(a, b, c, &error_fatal_without_exit)) {
// cleanup here, if any
return false;
}
However, this invites
frobnicate(a, b, c, &error_fatal_without_exit);
which is almost always wrong. If it's an error, we normally can't just
continue as if nothing had happened.
We should make the common case as easy to get rigtht as we can.
Making the exceptions even easier invites misuse.
> There are also warn_report*() functions which also have the same problem. A comprehensive solution needs to deal with them all. Removing all of them will do but may not be practical. Another possibility is that to write a documentation telling warning should be avoided for unhandled/programming errors and let all refer to it.
>
> I agree that there is little valid usage of &error_warn and removing it may not cause a problem at all, but it is still nice if there is a reasoning for the removal, ideally addressing these counterarguments as well.
I can look into improving the commit message after my vacation.
Thanks!
next prev parent reply other threads:[~2025-08-09 14:42 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-08 8:08 [PATCH 00/12] Error reporting cleanup, a fix, and &error_warn removal Markus Armbruster
2025-08-08 8:08 ` [PATCH 01/12] monitor: Clean up HMP gdbserver error reporting Markus Armbruster
2025-08-19 10:53 ` Daniel P. Berrangé
2025-09-09 11:22 ` Markus Armbruster
2025-08-08 8:08 ` [PATCH 02/12] tcg: Fix error reporting on mprotect() failure in tcg_region_init() Markus Armbruster
2025-08-08 14:00 ` Philippe Mathieu-Daudé
2025-08-19 10:56 ` Daniel P. Berrangé
2025-08-19 10:56 ` Daniel P. Berrangé
2025-08-08 8:08 ` [PATCH 03/12] hw/cxl: Convert cxl_fmws_link() to Error Markus Armbruster
2025-08-08 10:44 ` Jonathan Cameron via
2025-08-08 11:13 ` Markus Armbruster
2025-09-17 10:46 ` Markus Armbruster
2025-08-11 10:36 ` Philippe Mathieu-Daudé
2025-08-08 8:08 ` [PATCH 04/12] migration/cpr: Clean up error reporting in cpr_resave_fd() Markus Armbruster
2025-08-08 12:38 ` Steven Sistare
2025-08-08 13:55 ` Philippe Mathieu-Daudé
2025-08-08 14:08 ` Steven Sistare
2025-08-08 14:43 ` Markus Armbruster
2025-08-08 14:48 ` Steven Sistare
2025-08-08 15:04 ` Markus Armbruster
2025-08-08 8:08 ` [PATCH 05/12] hw/remote/vfio-user: Clean up error reporting Markus Armbruster
2025-08-08 8:08 ` [PATCH 06/12] net/slirp: " Markus Armbruster
2025-08-08 8:18 ` Marc-André Lureau
2025-08-19 11:10 ` Daniel P. Berrangé
2025-09-09 11:40 ` Markus Armbruster
2025-09-12 10:09 ` Daniel P. Berrangé
2025-08-08 8:08 ` [PATCH 07/12] ui/spice-core: " Markus Armbruster
2025-08-08 8:22 ` Marc-André Lureau
2025-08-19 11:15 ` Daniel P. Berrangé
2025-09-09 11:41 ` Markus Armbruster
2025-09-12 10:10 ` Daniel P. Berrangé
2025-08-08 8:08 ` [PATCH 08/12] util/oslib-win32: Revert warning on WSAEventSelect() failure Markus Armbruster
2025-08-08 8:22 ` Marc-André Lureau
2025-08-08 9:32 ` Markus Armbruster
2025-08-19 11:24 ` Daniel P. Berrangé
2025-09-09 11:50 ` Markus Armbruster
2025-09-12 10:13 ` Daniel P. Berrangé
2025-08-08 8:08 ` [PATCH 09/12] ui/pixman: Consistent error handling in qemu_pixman_shareable_free() Markus Armbruster
2025-08-08 8:16 ` Marc-André Lureau
2025-08-08 8:08 ` [PATCH 10/12] ui/dbus: Clean up dbus_update_gl_cb() error checking Markus Armbruster
2025-08-08 8:14 ` Marc-André Lureau
2025-08-08 8:08 ` [PATCH 11/12] ui/dbus: Consistent handling of texture mutex failure Markus Armbruster
2025-08-08 8:15 ` Marc-André Lureau
2025-08-08 8:08 ` [PATCH 12/12] error: Kill @error_warn Markus Armbruster
2025-08-08 14:02 ` Philippe Mathieu-Daudé
2025-08-08 14:45 ` Markus Armbruster
2025-08-09 7:07 ` Akihiko Odaki
2025-08-09 8:30 ` Markus Armbruster
2025-08-09 10:27 ` Akihiko Odaki
2025-08-09 14:42 ` Markus Armbruster [this message]
2025-08-19 11:26 ` Daniel P. Berrangé
2025-09-16 11:27 ` Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a548sgjl.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=odaki@rsg.ci.i.u-tokyo.ac.jp \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.