From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: [PULL 7/8] chardev: give some context on chardev-add error
Date: Thu, 5 Aug 2021 16:53:30 +0400 [thread overview]
Message-ID: <20210805125331.826741-8-marcandre.lureau@redhat.com> (raw)
In-Reply-To: <20210805125331.826741-1-marcandre.lureau@redhat.com>
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Description from Daniel P. Berrangé:
> The original code reported:
>
> "attempt to add duplicate property 'char2' to object (type 'container')"
>
> Since adding yank support, the current code reports
>
> "duplicate yank instance"
>
> With this patch applied it now reports:
>
> "Failed to add chardev 'char2': duplicate yank instance"
>
> This is marginally better, but still not great, not that the original
> error was great either.
>
> It would be nice if we could report
>
> "chardev with id 'char2' already exists"
Related to:
https://bugzilla.redhat.com/show_bug.cgi?id=1984721
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
---
chardev/char.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/chardev/char.c b/chardev/char.c
index d959eec522..f59a61774b 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -1031,27 +1031,26 @@ Chardev *qemu_chardev_new(const char *id, const char *typename,
ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend,
Error **errp)
{
+ ERRP_GUARD();
const ChardevClass *cc;
ChardevReturn *ret;
- Chardev *chr;
+ g_autoptr(Chardev) chr = NULL;
cc = char_get_class(ChardevBackendKind_str(backend->type), errp);
if (!cc) {
- return NULL;
+ goto err;
}
chr = chardev_new(id, object_class_get_name(OBJECT_CLASS(cc)),
backend, NULL, false, errp);
if (!chr) {
- return NULL;
+ goto err;
}
if (!object_property_try_add_child(get_chardevs_root(), id, OBJECT(chr),
errp)) {
- object_unref(OBJECT(chr));
- return NULL;
+ goto err;
}
- object_unref(OBJECT(chr));
ret = g_new0(ChardevReturn, 1);
if (CHARDEV_IS_PTY(chr)) {
@@ -1060,6 +1059,10 @@ ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend,
}
return ret;
+
+err:
+ error_prepend(errp, "Failed to add chardev '%s': ", id);
+ return NULL;
}
ChardevReturn *qmp_chardev_change(const char *id, ChardevBackend *backend,
--
2.32.0.264.g75ae10bc75
next prev parent reply other threads:[~2021-08-05 12:58 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-05 12:53 [PULL 0/8] chardev fixes for 6.1 marcandre.lureau
2021-08-05 12:53 ` [PULL 1/8] util: fix abstract socket path copy marcandre.lureau
2021-08-05 12:53 ` [PULL 2/8] chardev/socket: print a more correct command-line address marcandre.lureau
2021-08-05 12:53 ` [PULL 3/8] chardev: mark explicitly first argument as poisoned marcandre.lureau
2021-08-05 12:53 ` [PULL 4/8] chardev: fix fd_chr_add_watch() when in != out marcandre.lureau
2021-08-05 12:53 ` [PULL 5/8] chardev: fix qemu_chr_open_fd() being called with fd=-1 marcandre.lureau
2021-08-05 12:53 ` [PULL 6/8] chardev: fix qemu_chr_open_fd() with fd_in==fd_out marcandre.lureau
2021-08-05 12:53 ` marcandre.lureau [this message]
2021-08-05 12:53 ` [PULL 8/8] chardev: report a simpler error about duplicated id marcandre.lureau
2021-08-05 17:47 ` [PULL 0/8] chardev fixes for 6.1 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=20210805125331.826741-8-marcandre.lureau@redhat.com \
--to=marcandre.lureau@redhat.com \
--cc=berrange@redhat.com \
--cc=peter.maydell@linaro.org \
--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.