Richard W.M. Jones
2022-Jul-07 09:02 UTC
[Libguestfs] [PATCH nbdkit] vddk: Demote another "phone home" error message to debug
Reported-by: Ming Xie
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2104720
---
plugins/vddk/vddk.c | 31 ++++++++++++++++++++-----------
1 file changed, 20 insertions(+), 11 deletions(-)
diff --git a/plugins/vddk/vddk.c b/plugins/vddk/vddk.c
index dbd3fdbe..1ed9fc53 100644
--- a/plugins/vddk/vddk.c
+++ b/plugins/vddk/vddk.c
@@ -495,11 +495,25 @@ debug_function (const char *fs, va_list args)
nbdkit_debug ("%s", str);
}
+/* VDDK 7 added some useless error messages about their "phone home"
+ * system called CEIP which only panics users. Demote these to debug
+ * statements below.
+ *
+ * https://bugzilla.redhat.com/show_bug.cgi?id=1834267
+ * https://bugzilla.redhat.com/show_bug.cgi?id=2083617
+ * https://bugzilla.redhat.com/show_bug.cgi?id=2104720
+ */
+static const char *demoted_errors[] = {
+ "Get CEIP status failed",
+ "VDDK_PhoneHome:",
+};
+
/* Turn error messages from the library into nbdkit_error. */
static void
error_function (const char *fs, va_list args)
{
CLEANUP_FREE char *str = NULL;
+ size_t i;
/* If the thread-local error_suppression flag is non-zero then we
* will suppress error messages from VDDK in this thread.
@@ -513,17 +527,12 @@ error_function (const char *fs, va_list args)
trim (str);
- /* VDDK 7 added some useless error messages about their "phone
home"
- * system called CEIP which only panics users. Demote to a debug
- * statement.
- * https://bugzilla.redhat.com/show_bug.cgi?id=1834267
- * https://bugzilla.redhat.com/show_bug.cgi?id=2083617
- */
- if (strstr (str, "Get CEIP status failed") != NULL ||
- strstr (str, "VDDK_PhoneHome: Unable to load configuration "
- "options from ") != NULL) {
- nbdkit_debug ("%s", str);
- return;
+ /* See comment above about demoted errors. */
+ for (i = 0; i < sizeof demoted_errors / sizeof demoted_errors[0]; ++i) {
+ if (strstr (str, demoted_errors[i]) != NULL) {
+ nbdkit_debug ("%s", str);
+ return;
+ }
}
nbdkit_error ("%s", str);
--
2.37.0.rc2
Laszlo Ersek
2022-Jul-07 10:58 UTC
[Libguestfs] [PATCH nbdkit] vddk: Demote another "phone home" error message to debug
On 07/07/22 11:02, Richard W.M. Jones wrote:> Reported-by: Ming Xie > Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2104720 > --- > plugins/vddk/vddk.c | 31 ++++++++++++++++++++----------- > 1 file changed, 20 insertions(+), 11 deletions(-) > > diff --git a/plugins/vddk/vddk.c b/plugins/vddk/vddk.c > index dbd3fdbe..1ed9fc53 100644 > --- a/plugins/vddk/vddk.c > +++ b/plugins/vddk/vddk.c > @@ -495,11 +495,25 @@ debug_function (const char *fs, va_list args) > nbdkit_debug ("%s", str); > } > > +/* VDDK 7 added some useless error messages about their "phone home" > + * system called CEIP which only panics users. Demote these to debug > + * statements below. > + * > + * https://bugzilla.redhat.com/show_bug.cgi?id=1834267 > + * https://bugzilla.redhat.com/show_bug.cgi?id=2083617 > + * https://bugzilla.redhat.com/show_bug.cgi?id=2104720 > + */ > +static const char *demoted_errors[] = {We could constify the "demoted_errors" array itself too, not just the pointed-to strings.> + "Get CEIP status failed", > + "VDDK_PhoneHome:", > +}; > + > /* Turn error messages from the library into nbdkit_error. */ > static void > error_function (const char *fs, va_list args) > { > CLEANUP_FREE char *str = NULL; > + size_t i; > > /* If the thread-local error_suppression flag is non-zero then we > * will suppress error messages from VDDK in this thread. > @@ -513,17 +527,12 @@ error_function (const char *fs, va_list args) > > trim (str); > > - /* VDDK 7 added some useless error messages about their "phone home" > - * system called CEIP which only panics users. Demote to a debug > - * statement. > - * https://bugzilla.redhat.com/show_bug.cgi?id=1834267 > - * https://bugzilla.redhat.com/show_bug.cgi?id=2083617 > - */ > - if (strstr (str, "Get CEIP status failed") != NULL || > - strstr (str, "VDDK_PhoneHome: Unable to load configuration " > - "options from ") != NULL) { > - nbdkit_debug ("%s", str); > - return; > + /* See comment above about demoted errors. */ > + for (i = 0; i < sizeof demoted_errors / sizeof demoted_errors[0]; ++i) { > + if (strstr (str, demoted_errors[i]) != NULL) { > + nbdkit_debug ("%s", str); > + return; > + } > } > > nbdkit_error ("%s", str); >Humble -- yet annoying! -- request: $ git grep -E 'sizeof ([a-zA-Z0-9_]+) / sizeof \1\[0\]' common/bitmap/test-bitmap.c: for (j = 0; j < sizeof blks / sizeof blks[0]; ++j) { common/bitmap/test-bitmap.c: for (i = 0; i < sizeof blksizes / sizeof blksizes[0]; ++i) common/include/test-random.c:#define nr_tests (sizeof tests / sizeof tests[0]) common/utils/test-quotes.c: for (i = 0; i < sizeof tests / sizeof tests[0]; i++) { plugins/ocaml/plugin.c: rv = caml_callbackN_exn (pread_fn, sizeof args / sizeof args[0], args); plugins/ocaml/plugin.c: rv = caml_callbackN_exn (pwrite_fn, sizeof args / sizeof args[0], args); plugins/ocaml/plugin.c: rv = caml_callbackN_exn (trim_fn, sizeof args / sizeof args[0], args); plugins/ocaml/plugin.c: rv = caml_callbackN_exn (zero_fn, sizeof args / sizeof args[0], args); plugins/ocaml/plugin.c: rv = caml_callbackN_exn (extents_fn, sizeof args / sizeof args[0], args); plugins/ocaml/plugin.c: rv = caml_callbackN_exn (cache_fn, sizeof args / sizeof args[0], args); plugins/ruby/ruby.c: code = ruby_options (sizeof options / sizeof options[0], plugins/ssh/ssh.c: const size_t nr_levels = sizeof levels / sizeof levels[0]; plugins/torrent/torrent.cpp:static const size_t nr_settings = sizeof settings / sizeof settings[0]; server/fuzzer.c: const int argc = sizeof argv / sizeof argv[0] - 1; server/public.c: switch (ppoll (fds, sizeof fds / sizeof fds[0], &ts, &all)) { server/test-public.c: for (i = 0; i < sizeof pairs / sizeof pairs[0]; i++) { I think it's time for us to introduce the ARRAY_SIZE macro. Can you do that first perhaps, rebase the existing code, and then add this new patch? :) However you decide: Reviewed-by: Laszlo Ersek <lersek at redhat.com> Thanks! Laszlo