On 06.07.25 00:27, Tom Lane wrote:
Peter Eisentraut <pe...@eisentraut.org> writes:
On 04.06.25 08:15, Peter Eisentraut wrote:
For an explanation, the background is that MSVC has a "traditional"
preprocessor and a new "conforming" one. The latter is available
starting in VS 2019, but it's not the default. We have some code,
especially around __VA_ARGS__ that specifically caters to this
traditional preprocessor.
I have committed this.
Buildfarm member drongo has been failing in initdb since 1 July:
selecting default time zone ... UTC
creating configuration files ... ok
running bootstrap script ...
----------------------------------- stderr -----------------------------------
TRAP: failed Assert("SysCache[cacheId]->cc_nkeys == 2"), File:
"../pgsql/src/backend/utils/cache/syscache.c", Line: 237, PID: 2684
child process was terminated by exception 0xC0000409
While there are 19 new commits in the first run that shows this
failure [1], the only one that looks plausibly related is
8fd9bb1d965 Tue Jul 1 07:41:40 2025 UTC Enable MSVC conforming preprocessor
because that changed our implementation of VA_ARGS_NARGS(), which is
what's used to compute the cc_nkeys fields for syscaches.
My conclusion is that Microsoft's "standards conforming" preprocessor
is not so standards conforming as all that.
Hmm. We have the (allegedly) same VS version in Cirrus CI, and it's
never shown a problem like this.
I wonder if there could be a local problem on this host. Perhaps the
ccache or pch cache could use a cleaning up?