Re: [PATCH] Add native windows on arm64 support

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Dave Cramer <davecramer@postgres.rocks>
Cc: Michael Paquier <michael@paquier.xyz>, Andres Freund <andres@anarazel.de>, Anthony Roberts <anthony.roberts@linaro.org>, Daniel Gustafsson <daniel@yesql.se>, Lina Iyer <lina.iyer@linaro.org>, Mike Holmes <mike.holmes@linaro.org>, Peter Eisentraut <peter@eisentraut.org>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Thomas Munro <thomas.munro@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2024-02-10T18:28:29Z
Lists: pgsql-hackers
On 2024-02-10 Sa 12:20, Dave Cramer wrote:
>
>
> On Sat, 10 Feb 2024 at 11:19, Andrew Dunstan <andrew@dunslane.net> wrote:
>
>
>     On 2024-02-09 Fr 14:23, Dave Cramer wrote:
>>
>>     Dave Cramer
>>     www.postgres.rocks <http://www.postgres.rocks>
>>
>>
>>     On Fri, 9 Feb 2024 at 07:18, Dave Cramer
>>     <davecramer@postgres.rocks> <mailto:davecramer@postgres.rocks> wrote:
>>
>>
>>
>>
>>
>>         On Fri, 9 Feb 2024 at 00:26, Michael Paquier
>>         <michael@paquier.xyz> wrote:
>>
>>             On Tue, Feb 06, 2024 at 07:01:49AM -0500, Dave Cramer wrote:
>>             > Thanks, this patch works and
>>             > testing with meson passes.
>>
>>             Only with the version posted at [1]? Interesting, that's
>>             the same
>>             contents as v8 posted upthread, minus src/tools/ because
>>             we don't need
>>             to care about them anymore.
>>
>>             Andrew, what's happening on the test side?  It does not
>>             seem you've
>>             mentioned any details about what is going wrong, or I
>>             have just missed
>>             them.
>>
>>             > I'll try the buildfarm next.
>>
>>             [1]:
>>             https://www.postgresql.org/message-id/ea42654a-3dc4-98b0-335b-56b7ec5e5687@dunslane.net
>>
>>
>>         interestingly meson test does not produce any error
>>         The buildfarm produces the following error for me:
>>
>>         -SELECT relname, attname, coltypes, get_columns_length(coltypes)
>>         - FROM check_columns
>>         - WHERE get_columns_length(coltypes) % 8 != 0 OR
>>         -       'name'::regtype::oid = ANY(coltypes);
>>         - relname | attname | coltypes | get_columns_length
>>         ----------+---------+----------+--------------------
>>         -(0 rows)
>>         -
>>         +server closed the connection unexpectedly
>>         +This probably means the server terminated abnormally
>>         +before or while processing the request.
>>         +connection to server was lost
>>
>>
>>     Actually digging some more, here is the actual error
>>
>>     2024-02-09 13:31:11.008 -05 postmaster[10672] LOG:  server
>>     process (PID 11204) was terminated by exception 0xC0000005
>>     2024-02-09 13:31:11.008 -05 postmaster[10672] DETAIL:  Failed
>>     process was running: VACUUM;
>>     2024-02-09 13:31:11.008 -05 postmaster[10672] HINT:  See C
>>     include file "ntstatus.h" for a description of the hexadecimal value.
>>     2024-02-09 13:31:11.008 -05 postmaster[10672] LOG:  terminating
>>     any other active server processes
>>     2024-02-09 13:31:11.013 -05 postmaster[10672] LOG:  all server
>>     processes terminated; reinitializing
>>     2024-02-09 13:31:11.034 -05 startup[6152] LOG:  database system
>>     was interrupted; last known up at 2024-02-09 13:31:01 -05
>>
>>
>>
>
>
> So how does one debug this ?
>
> Also if I `run meson test` I don't see this error. What does the 
> buildfarm do differently?


First it does this:


    meson test -C $pgsql --no-rebuild --suite setup


Then it does this (jflag is for the number of jobs):


    meson test -t $meson_test_timeout $jflag -C $pgsql --logbase
    checklog --print-errorlogs --no-rebuild --suite regress
    --test-args=--no-locale


cheers


andrew

--
Andrew Dunstan
EDB:https://www.enterprisedb.com

Commits

  1. MSVC: Support building for AArch64.

  2. Remove "#ifdef WIN32" guards from src/port/win32*.c

  3. Adjust XML test case to avoid unstable behavior.

  4. Enable RandomizedBaseAddress (ASLR) on Windows with MSVC builds