On Mon, Feb 1, 2021 at 3:41 PM Alexander Korotkov <[email protected]> wrote: > On Mon, Feb 1, 2021 at 10:06 AM Tom Lane <[email protected]> wrote: > > Heikki Linnakangas <[email protected]> writes: > > > On 31/01/2021 22:54, Alexander Korotkov wrote: > > >> Implementation of subscripting for jsonb > > > > > The Itanium and sparc64 buildfarm members didn't like this, and are > > > crashing at "select ('123'::jsonb)['a'];". Unaligned memory access, > > > perhaps? > > > > I think I just identified the cause. > > Thanks again for fixing this. > > BTW, I managed to reproduce the issue by compiling with CFLAGS="-O0 > -fsanitize=alignment -fsanitize-trap=alignment" and the patch > attached. > > I can propose the following to catch such issues earlier. We could > finish (wrap attribute with macro and apply it to other places with > misalignment access if any) and apply the attached patch and make > commitfest.cputube.org check patches with CFLAGS="-O0 > -fsanitize=alignment -fsanitize-trap=alignment". What do you think?
The revised patch is attached. The attribute is wrapped into pg_attribute_no_sanitize_alignment() macro. I've checked it works for me with gcc-10 and clang-11. ------ Regards, Alexander Korotkov
pg_attribute_no_sanitize_alignment.patch
Description: Binary data
