From: Claudio Fontana <cfontana@suse.de>
To: Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>,
Markus Armbruster <armbru@redhat.com>,
Kevin Wolf <kwolf@redhat.com>
Cc: qemu-devel@nongnu.org, dinechin@redhat.com,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Daniel P . Berrangé" <berrange@redhat.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: Re: [PATCH v9 0/5] improve error handling for module load
Date: Thu, 27 Oct 2022 16:52:16 +0200 [thread overview]
Message-ID: <b68f4730-be61-b635-057e-270f3f74f63b@suse.de> (raw)
In-Reply-To: <3568bac0-1b64-d096-b78a-29f628a70448@suse.de>
A ping on this one, is there anything more that needs to be urgently addressed before it can be queued for inclusion?
This is currently creating problems for upstream kubevirt, due to the error handling not properly reporting permissions errors on module file access.
Thanks,
Claudio
On 10/21/22 10:24, Claudio Fontana wrote:
> ping, can this series move on?
>
> Thanks,
>
> Claudio
>
>
> On 9/29/22 11:30, Claudio Fontana wrote:
>> CHANGELOG:
>>
>> v8 -> v9:
>>
>> * add Signed-off-by tag for Kevin's commit
>> * fully reviewed, added tags.
>>
>> v7 -> v8:
>>
>> * fix a problem in module_load, where the module_name in v7 was mistakenly freed
>> via g_free() also in the success code path, and instead module_name memory
>> is owned by g_hash_table afer g_hash_table_add.
>>
>> * add more text to the commit message to indicate areas of further improvements,
>> and more details about changes.
>>
>> * in PATCH 5/5, change the commit message to align with the change in v7,
>> ie, we exit(), we do not abort().
>>
>> v6 -> v7:
>>
>> * changed instances of abort() to exit(1), for the CONFIG_MODULES case (Philippe).
>>
>> * dmg: do not use a separate local error, use the existing errp (Kevin)
>>
>> * block: do not use a separate local error, use the existing errp for
>> bdrv_find_protocol (Markus)
>>
>> v5 -> v6:
>>
>> * added a patch by Kevin to handle the dmg warning about missing
>> decompression submodules. (Kevin)
>>
>> * added more verbose comments about all the affected callers of module_load
>> and module_load_qom (Markus)
>>
>> (OPEN ISSUE): change abort() to exit() when type not present even after loading module?
>>
>> (Philippe)
>>
>> v4 -> v5:
>>
>> * added a patch to rename module_load_one and friends to module_load
>>
>> * qdev_new: just reuse module_object_class_by_name, to avoid duplicating code
>>
>> * changed return value of module_load to an int:
>> -1 error (Error **errp set).
>> 0 module or dependencies not installed,
>> 1 loaded
>> 2 already loaded (or built-in)
>>
>> Adapted all callers.
>>
>> * module_load: fixed some pre-existing memory leaks, used an out: label
>> to do the cleanup.
>>
>> v3 -> v4: (Richard)
>>
>> * module_object_class_by_name: return NULL immediately on load error.
>> * audio_driver_lookup: same.
>> * bdrv_find_format: same.
>>
>> * dmg_open: handle optional compression submodules better: f.e.,
>> if "dmg-bz2" is not present, continue but offer a warning.
>> If "dmg-bz2" load fails with error, error out and return.
>>
>> * module_load_dso: add newline to error_append_hint.
>>
>> v2 -> v3:
>>
>> * take the file existence check outside of module_load_file,
>> rename module_load_file to module_load_dso, will be called only on
>> an existing file. This will simplify the return value. (Richard)
>>
>> * move exported function documentation into header files (Richard)
>>
>> v1 -> v2:
>>
>> * do not treat the display help text any differently and do report
>> module load _errors_. If the module does not exist (ENOENT, ENOTDIR),
>> no error will be produced.
>>
>> DESCRIPTION:
>>
>> while investigating a permission issue in accel, where accel-tcg-x86_64.so
>> was not accessible, I noticed that no errors were produced regarding the
>> module load failure.
>>
>> This series attempts to improve module_load_one and module_load_qom_one
>> to handle the error cases better and produce some errors.
>>
>> Patch 1 is already reviewed and is about removing an unused existing
>> argument "mayfail" from the call stack.
>>
>> Patch 2 is the real meat, and that one I would say is RFC.
>> Will follow up with comments on the specific questions I have.
>>
>> Patch 3 finally adds a simple check in accel/, aborting if a module
>> is not found, but relying on the existing error report from
>> module_load_qom_one.
>>
>> Claudio Fontana (4):
>> module: removed unused function argument "mayfail"
>> module: rename module_load_one to module_load
>> module: add Error arguments to module_load and module_load_qom
>> accel: abort if we fail to load the accelerator plugin
>>
>> Kevin Wolf (1):
>> dmg: warn when opening dmg images containing blocks of unknown type
>>
>> accel/accel-softmmu.c | 8 +-
>> audio/audio.c | 16 ++--
>> block.c | 20 +++-
>> block/dmg.c | 33 ++++++-
>> hw/core/qdev.c | 17 +++-
>> include/qemu/module.h | 37 +++++++-
>> qom/object.c | 18 +++-
>> softmmu/qtest.c | 8 +-
>> ui/console.c | 18 +++-
>> util/module.c | 211 +++++++++++++++++++++++-------------------
>> 10 files changed, 260 insertions(+), 126 deletions(-)
>>
>
>
next prev parent reply other threads:[~2022-10-27 14:53 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-29 9:30 [PATCH v9 0/5] improve error handling for module load Claudio Fontana
2022-09-29 9:30 ` [PATCH v9 1/5] module: removed unused function argument "mayfail" Claudio Fontana
2022-09-29 9:30 ` [PATCH v9 2/5] module: rename module_load_one to module_load Claudio Fontana
2022-09-29 9:30 ` [PATCH v9 3/5] module: add Error arguments to module_load and module_load_qom Claudio Fontana
2022-09-29 9:30 ` [PATCH v9 4/5] dmg: warn when opening dmg images containing blocks of unknown type Claudio Fontana
2022-09-29 9:30 ` [PATCH v9 5/5] accel: abort if we fail to load the accelerator plugin Claudio Fontana
2022-10-21 8:24 ` [PATCH v9 0/5] improve error handling for module load Claudio Fontana
2022-10-27 14:52 ` Claudio Fontana [this message]
2022-10-27 18:34 ` Kevin Wolf
2022-11-04 9:05 ` Claudio Fontana
2022-11-04 11:43 ` Peter Maydell
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=b68f4730-be61-b635-057e-270f3f74f63b@suse.de \
--to=cfontana@suse.de \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=dinechin@redhat.com \
--cc=f4bug@amsat.org \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).