Re: ubsan - Mailing list pgsql-hackers

From Andres Freund
Subject Re: ubsan
Date
Msg-id 20220323225528.hqt66d6mpx66hoal@alap3.anarazel.de
Whole thread Raw
In response to Re: ubsan  (Andres Freund <andres@anarazel.de>)
Responses Re: ubsan  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: ubsan  (David Steele <david@pgmasters.net>)
Re: ubsan  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
Hi,

On 2022-03-23 13:12:34 -0700, Andres Freund wrote:
> I'm planning to enable it on two of mine. Looks like gcc and clang find
> slightly different things, so I was intending to enable it on one of each.

Originally I'd planned to mix them into existing members, but I think it'd be
better to have dedicated ones. Applied for a few new buildfarm names for:
{gcc,clang}-{-fsanitize=undefined,-fsanitize=address}.


Running with asan found an existing use-after-free bug in pg_waldump (*), a bug in
dshash_seq_next() next that probably can't be hit in HEAD and a bug in my
shared memory stats patch. I count that as a success.

It's particularly impressive that the cost of running with ASAN is *so* much
lower than valgrind. On my workstation a check-world with
-fsanitize=alignment,undefined,address takes 3min17s, vs 1min10s or so without
-fsanitize.  Not something to always use, but certainly better than valgrind.

Greetings,

Andres Freund

(*) search_directory() uses fname = xlde->d_name after closedir(). Found in
pg_verifybackup.c's tests. Probably worth adding a few simple tests to
pg_waldump itself.



pgsql-hackers by date:

Previous
From: Thomas Munro
Date:
Subject: Re: [PATCH] add relation and block-level filtering to pg_waldump
Next
From: Robert Haas
Date:
Subject: Re: multithreaded zstd backup compression for client and server