All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: qemu-devel@nongnu.org,  odaki@rsg.ci.i.u-tokyo.ac.jp,
	marcandre.lureau@redhat.com
Subject: Re: [PATCH 08/12] util/oslib-win32: Revert warning on WSAEventSelect() failure
Date: Tue, 09 Sep 2025 13:50:56 +0200	[thread overview]
Message-ID: <87segvyhcv.fsf@pond.sub.org> (raw)
In-Reply-To: <aKRe6pTbdU0OZ85I@redhat.com> ("Daniel P. Berrangé"'s message of "Tue, 19 Aug 2025 12:24:26 +0100")

Daniel P. Berrangé <berrange@redhat.com> writes:

> On Fri, Aug 08, 2025 at 10:08:19AM +0200, Markus Armbruster wrote:
>> qemu_socket_select() and its wrapper qemu_socket_unselect() treat a
>> NULL @errp as &error_warn.  This is wildly inappropriate.  A caller
>> passing NULL specifies that errors are to be ignored.  If warnings are
>> wanted, the caller must pass &error_warn.
>> 
>> I'm not familiar with the calling code, so I can't say whether it will
>> work after WSAEventSelect() failure.  If it doesn't, then this should
>> be an error.  If it does, then why bother the user with a warning that
>> isn't actionable, and likely confusing?
>> 
>> The warning goes back to commit f5fd677ae7cf (win32/socket: introduce
>> qemu_socket_select() helper).  Before that commit, the error was
>> ignored, as indicated by passing a null @errp.  Revert to that
>> behavior.
>> 
>> Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> ---
>>  util/oslib-win32.c | 4 ----
>>  1 file changed, 4 deletions(-)
>> 
>> diff --git a/util/oslib-win32.c b/util/oslib-win32.c
>> index b7351634ec..136a8fe118 100644
>> --- a/util/oslib-win32.c
>> +++ b/util/oslib-win32.c
>> @@ -296,10 +296,6 @@ bool qemu_socket_select(int sockfd, WSAEVENT hEventObject,
>>  {
>>      SOCKET s = _get_osfhandle(sockfd);
>>  
>> -    if (errp == NULL) {
>> -        errp = &error_warn;
>> -    }
>
> This makes sense, but I'd want the callers to be using warn_report
> instead. Ideally some (but not all) of the callers would propagate
> the error, but this isn't practical with the QIOChannel create
> watch function usage. I'd want to keep Error *errp on this function
> though, and have warn_report as a sign to our future selves that
> this is still not ideal.

The direct callers are qio_channel_create_socket_watch(),
aio_set_fd_handler().  Callers via qemu_socket_unselect() are
qio_channel_socket_finalize(), qio_channel_socket_close(),
qemu_socket_set_block().

All but qio_channel_socket_close() cannot fail.  Would you like me to
make them pass &error_warn, because warning is less bad than silence
there?

qio_channel_socket_close() can fail, but it ignores
qemu_socket_unselect() failure.  What do you want me to do there?

>> -
>>      if (s == INVALID_SOCKET) {
>>          error_setg(errp, "invalid socket fd=%d", sockfd);
>>          return false;
>> -- 
>> 2.49.0
>> 
>> 
>
> With regards,
> Daniel



  reply	other threads:[~2025-09-09 11:52 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 [this message]
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
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=87segvyhcv.fsf@pond.sub.org \
    --to=armbru@redhat.com \
    --cc=berrange@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.