Hi,

On Thu, 2021-12-09 at 15:23 +0100, Mark Wielaard wrote:
> I was trying the new --enable-sanitizer-address on our armv7l
> buildbot worker and it almost works as is, except for...

I was confusing address sanitizer and the undefined sanitizer. It is
the undefined sanitizer that produces the following runtime error. The 
new address sanitizer seems to work as expected. So I'll at least use
--enable-sanitizer-address on the armv7l CI buildbot worker, but it
would be nice to figure out why the undefined sanitizer is complaining
about this usage of "right" and whether we really need it.

> debuginfod.cxx:3472:12: runtime error: reference binding to misaligned
> address 0x00561ec9 for type '<unknown>', which requires 2 byte
> alignment
> 0x00561ec9: note: pointer points here
>  12 0a 00  2d e9 f0 4f 85 b0 00 af  f8 60 df f8 bc e1 fe 44  f8 68 fa
> 68 00 2a 04 d0  00 f0 03 0c bc
>               ^ 
> 
> And indeed removing 'right' here:
> 
> diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx
> index 35424e47..6fad331a 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")
> +        << setw(20) << ((const char*) sqlite3_column_text(ps_query, 0)
> ?: (const char*) "NULL")
>          << " "
>          << (sqlite3_column_text(ps_query, 1) ?: (const unsigned char*)
> "NULL")
>          << endl;
> 
> Makes everything PASS.
> 
> But I don't understand why. It might be a bug in gcc/libasan (this is
> gcc 8.3.0 Debian 10.11 - Buster). I can try upgrading the machine to
> Debian 11 - Bullseye this weekend to see if that helps.
> 
> Also, do we really want to right align the log here? We don't seem to
> align the log text anywhere else.
> 
> Cheers,
> 
> Mark

Reply via email to