MinGW ccache snafu on CI

From: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: MinGW ccache snafu on CI
Date: 2026-07-04 04:44:47
Message-ID: CA+hUKG+s7Yvt0PUnSQUEjCjysV-7-51n9B1h468Le3VJi0x4ZQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

As previously reported[1] (also discussed on Discord a few times), the
MinGW CI job is capable of getting confused like this:

Cache restored from key: ccache:windows-mingw:thread-work:28559723796:1

# check for "D:/a/postgres/postgres/build/tmp_install/usr/local/pgsql/bin/vacuumdb"
failed: incorrect version: found "vacuumdb (PostgreSQL) 19beta1",
expected "vacuumdb (PostgreSQL) 20devel"

Apparently ccache failed to recompile stuff that it should have, and
produced a stale .o from an earlier build in the same repo/branch.
While "19beta1" and "20devel" have the same length, I doubt that a
mere few hundred monkeys with typewriters have found multiple hash
collisions...

One observation is that the MinGW job is using precompiled headers
(-Db_pch=true). I wonder if we might be using the wrong switches[2],
but I don't claim to understand that stuff...

So is the MSVC job, but I don't recall hearing of any problems there.

[1] https://www.postgresql.org/message-id/flat/E1vOJwR-001XFf-0r%40gemulon.postgresql.org
[2] https://ccache.dev/manual/4.1.html#_precompiled_headers

Browse pgsql-hackers by date

  From Date Subject
Previous Message jian he 2026-07-04 01:22:24 Re: Row pattern recognition