Hi Frank,

On Thu, 2021-12-09 at 10:47 -0500, Frank Ch. Eigler via Elfutils-devel
wrote:
> > debuginfod.cxx:3472:12: runtime error: reference binding to
> > misaligned
> > address 0x00561ec9 for type '<unknown>', which requires 2 byte
> > alignment
> > [...]
> > But I don't understand why. It might be a bug in gcc/libasan (this
> > is
> > gcc 8.3.0 Debian 10.11 - Buster). [...]
> 
> It must be a bug in gcc/libasan or something.

Yeah, I'll try to see if an gcc upgrade on the machine will help (but
that has to wait a couple of days).

> > Also, do we really want to right align the log here? We don't seem
> > to
> > align the log text anywhere else.
> 
> This one just prettifies the messages because there is a sequence
> metrics & values being printed at startup, so it makes the numbers
> line up.  But no great loss to drop; we export those as prometheus
> metrics too.

I am not proud of needing this workaround, but I did push the attached.

Thanks,

Mark
From 7fc69582efcfb5f005f04c818a7aab76ff1090be Mon Sep 17 00:00:00 2001
From: Mark Wielaard <m...@klomp.org>
Date: Thu, 9 Dec 2021 18:00:05 +0100
Subject: [PATCH] debuginfod: Don't format clog using 'right' or 'setw(20)'.

Keep the logs just plain unformatted text.

This really is a workaround for an apparent bug with gcc 8.3
-fsanitizer=undefined on arm32, which complains about the
'right' formatter:

debuginfod.cxx:3472:12: runtime error: reference binding to
misaligned address 0x00561ec9 for type '<unknown>', which
requires 2 byte alignment

Signed-off-by: Mark Wielaard <m...@klomp.org>
---
 debuginfod/ChangeLog      | 5 +++++
 debuginfod/debuginfod.cxx | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog
index 7a4840ff..df373201 100644
--- a/debuginfod/ChangeLog
+++ b/debuginfod/ChangeLog
@@ -1,3 +1,8 @@
+2021-12-09  Mark Wielaard  <m...@klomp.org>
+
+	* debuginfod.cxx (database_stats_report): Don't format clog
+	using 'right' and 'setw(20)'.
+
 2021-12-04  Mark Wielaard  <m...@klomp.org>
 
 	* debuginfod.cxx (main): Call debuginfod_pool_groom before exit.
diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx
index 35424e47..887e4f5a 100644
--- a/debuginfod/debuginfod.cxx
+++ b/debuginfod/debuginfod.cxx
@@ -3469,7 +3469,7 @@ database_stats_report()
         throw sqlite_exception(rc, "step");
 
       obatched(clog)
-        << right << setw(20) << ((const char*) sqlite3_column_text(ps_query, 0) ?: (const char*) "NULL")
+        << ((const char*) sqlite3_column_text(ps_query, 0) ?: (const char*) "NULL")
         << " "
         << (sqlite3_column_text(ps_query, 1) ?: (const unsigned char*) "NULL")
         << endl;
-- 
2.18.4

Reply via email to