Re: 012_subtransactions.pl vs clang -fsanitize=undefined

From: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
To: Justin Pryzby <pryzby(at)telsasoft(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: 012_subtransactions.pl vs clang -fsanitize=undefined
Date: 2022-07-24 21:19:37
Message-ID: CA+hUKGJizPASzg1o-6SCqADTQFUxkH4u4xCDUuwmL7w+kCFFqw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Jul 25, 2022 at 8:59 AM Justin Pryzby <pryzby(at)telsasoft(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas Munro 2022-07-24 21:35:36 Re: ReadRecentBuffer() is broken for local buffer
Previous Message Justin Pryzby 2022-07-24 20:59:37 012_subtransactions.pl vs clang -fsanitize=undefined