Re: Invalid control file checksum with AVX-512 during initdb on a clang19 -O0 build

From: John Naylor <johncnaylorls(at)gmail(dot)com>
To: Nathan Bossart <nathandbossart(at)gmail(dot)com>
Cc: Soumyadeep Chakraborty <soumyadeep2007(at)gmail(dot)com>, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: Invalid control file checksum with AVX-512 during initdb on a clang19 -O0 build
Date: 2025-06-12 06:57:01
Message-ID: CANWCAZa9Q4_NcGn5CUHwEvBCN=nZz1_BFfeJEXXon05E_tYi7w@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Thu, Jun 12, 2025 at 4:42 AM Nathan Bossart <nathandbossart(at)gmail(dot)com> wrote:
>
> (I've CC'd the committer of the feature.)
>
> On Wed, Jun 11, 2025 at 11:10:31AM -0700, Soumyadeep Chakraborty wrote:
> > Note that this only reproduces with clang-19 -O0 and NOT -O3. I haven't
> > tried with other versions of clang.
> >
> > OTOH, gcc-14 is cool with both -O0 and -O3, with AVX-512 getting picked
> > for both cases, for CRC instructions.
>
> I'm wondering if there's anything else this could be besides a compiler
> bug. It's interesting that -O0 is the broken case. Have you tried looking
> for differences in the assembly code?

Hmm, clang at -O0 is the same in versions 18, 19, and 20. The change
from v17 is easy enough to workaround as in the attached, which
produces identical output as master at -O2. Does this fix it for you?
If that's not it, it may be more difficult, as the change at -O0 from
v16 to v17 is large, so it's hard to see what's going on.

--
John Naylor
Amazon Web Services

Attachment Content-Type Size
v1-crc-workaround-clang-18.patch text/x-patch 636 bytes

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Anthonin Bonnefoy 2025-06-12 07:38:41 Re: BUG #18944: Assertion Failure in psql with idle_session_timeout Set
Previous Message vignesh C 2025-06-12 06:47:44 Re: Logical replication 'invalid memory alloc request size 1585837200' after upgrading to 17.5