Re: Detecting pointer misalignment (was Re: pgsql: Implementation of subscripting for jsonb)
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alexander Korotkov <aekorotkov@gmail.com>
Cc: Thomas Munro <thomas.munro@gmail.com>,
Heikki Linnakangas <hlinnaka@iki.fi>,
Alexander Korotkov <akorotkov@postgresql.org>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-02-12T17:19:43Z
Lists: pgsql-hackers
I've updated buildfarm member longfin to use "-fsanitize=alignment -fsanitize-trap=alignment", and it just got through a run successfully with that. It'd be good perhaps if some other buildfarm owners followed suit (mumble JIT coverage mumble). Looking around at other recent reports, it looks like we'll need to tweak the compiler version cutoffs a bit. I see for instance that spurfowl, with gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609, is whining: pg_crc32c_sse42.c:24:1: warning: \342\200\230no_sanitize\342\200\231 attribute directive ignored [-Wattributes] So maybe it'd better be __GNUC__ >= 6 not __GNUC__ >= 5. I think we can wait a little bit for more reports before messing with that, though. Once this does settle, should we consider back-patching so that it's possible to run alignment checks in the back branches too? regards, tom lane
Commits
-
pg_attribute_no_sanitize_alignment() macro
- cc7ea0717b12 9.6.22 landed
- c86eae39ce1e 13.3 landed
- c3dc311ffd64 12.7 landed
- 22001684623b 11.12 landed
- 02e7da01a436 10.17 landed
- 993bdb9f935a 14.0 landed
-
Tweak compiler version cutoff for no_sanitize("alignment") support.
- ad2ad698ac16 14.0 landed
-
Implementation of subscripting for jsonb
- 676887a3b0b8 14.0 cited