Re: Invalid control file checksum with AVX-512 during initdb on a clang19 -O0 build
Soumyadeep Chakraborty <soumyadeep2007@gmail.com>
From: Soumyadeep Chakraborty <soumyadeep2007@gmail.com>
To: John Naylor <johncnaylorls@gmail.com>
Cc: Nathan Bossart <nathandbossart@gmail.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2025-06-12T17:30:08Z
Lists: pgsql-bugs
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Workaround code generation bug in clang
- f83f14881c7a 18.0 landed
-
Don't reduce output request size on non-Unix-socket connections.
- 137935bd1167 18.0 cited
On Wed, Jun 11, 2025 at 11:57PM John Naylor <johncnaylorls@gmail.com> wrote: > > On Thu, Jun 12, 2025 at 4:42AM Nathan Bossart <nathandbossart@gmail.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? Unfortunately, I haven't had a chance to dig into the assembly yet. > > 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. > It unfortunately doesn't. I still get the same checksum failure. I tried -O0 clang-19, clang-18 and clang-17. I've uploaded the rr recordings and initdb output with your patch applied and the debug logs I had. Regards, Deep initdb-clang17.crc.workaround.out <https://drive.google.com/file/d/1OptFhlWsOqNx4s2fv1tikOhsqjh27u-E/view?usp=drive_web> initdb-clang18.crc.workaround.out <https://drive.google.com/file/d/1yXYWmt7cHMXgONMkr9Yl29YU2HXpE8LT/view?usp=drive_web> initdb-clang19.crc.workaround.out <https://drive.google.com/file/d/1JmLKQMXOCwx8YFlJ_xpKdniopjwGpcji/view?usp=drive_web> rr-clang17.crc.workaround.tar.gz <https://drive.google.com/file/d/1Tnjva4l4w6S6iKn2hJBaTy1NRNHTTsAV/view?usp=drive_web> rr-clang18.crc.workaround.tar.gz <https://drive.google.com/file/d/1m7iKJHcAPPcKXet9gKkGEzTiFbJ2C9Ul/view?usp=drive_web> rr-clang19.crc.workaround.tar.gz <https://drive.google.com/file/d/1zXzUtvMJbsNMJNQezI5uC3Fb8Y3sUuMs/view?usp=drive_web>