Re: 012_subtransactions.pl vs clang -fsanitize=undefined - Mailing list pgsql-hackers

From Thomas Munro
Subject Re: 012_subtransactions.pl vs clang -fsanitize=undefined
Date
Msg-id CA+hUKGJizPASzg1o-6SCqADTQFUxkH4u4xCDUuwmL7w+kCFFqw@mail.gmail.com
Whole thread Raw
In response to 012_subtransactions.pl vs clang -fsanitize=undefined  (Justin Pryzby <pryzby@telsasoft.com>)
Responses Re: 012_subtransactions.pl vs clang -fsanitize=undefined
List pgsql-hackers
On Mon, Jul 25, 2022 at 8:59 AM Justin Pryzby <pryzby@telsasoft.com> wrote:
> I found that -fsanitize causes the test to fail, going back to REL_10_STABLE,
> for any clang in:
>
> 1:11.1.0-6
> 1:12.0.1-19ubuntu3
> 1:13.0.1-2ubuntu2
> 1:14.0.0-1ubuntu1
>
> | time ./configure --enable-cassert --enable-debug --enable-tap-tests --with-CC=clang-13
CFLAGS='-fsanitize=undefined'
> | time { make -j4 clean; make -j4; } >/dev/null
> | time PROVE_TESTS=t/012_subtransactions.pl make -C ./src/test/recovery check
> |
> | t/012_subtransactions.pl .. 2/?
> | #   Failed test 'Visible'
> | #   at t/012_subtransactions.pl line 111.
> | #          got: '-1'
> | #     expected: '8128'
> | ...
> | # Looks like you failed 6 tests of 12.
>
> I haven't found any combination of options which cause it to fail differently,
> so I'm not even sure if the problem is in postgres, the test case, clang or
> libubsan.  Note that optimization seems to avoid the problem, which is why
> "kestrel" shows no issue.
> https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=kestrel&dt=2022-07-23%2022%3A17%3A48

Yeah I've seen this too... it'd be good to figure out how to fix it:

https://www.postgresql.org/message-id/CA%2BhUKGLDA-GuQKRvDF3abHadDrrYZ33N9e4DEOGwKH3JqdYSCQ%40mail.gmail.com



pgsql-hackers by date:

Previous
From: Justin Pryzby
Date:
Subject: 012_subtransactions.pl vs clang -fsanitize=undefined
Next
From: Thomas Munro
Date:
Subject: Re: ReadRecentBuffer() is broken for local buffer