Alexander,

I reproduced this on current master 38afc3dcb25 using Meson 1.11.2 and
MSVC 19.44 on Windows 11 ARM64.

The native ARM64 full suite failed at the pg_ctl promote step, although
an isolated rerun passed all 12 subtests. The x64-on-ARM64 build failed
at the same step after 89.92 seconds in the full suite and again after
85.77 seconds in an isolated rerun.

I then ported and tested both of Nathan Bossart's 2023 proposals:

- v1 always calls WaitLatch(), with a zero timeout if the retry interval
  has already elapsed.
- v2 dispatches queued Windows signals in the startup, checkpointer, and
  archiver interrupt handlers.

For each patch, recovery/002_archiving passed five consecutive times on
x64-on-ARM64 and three consecutive times on native ARM64, with all 12
subtests passing. recovery/001_stream_rep and
recovery/020_archive_status also passed on both configurations.

Nathan's v1 and v2:
https://www.postgresql.org/message-id/20230111061116.GA1668254%40nathanxps13
https://www.postgresql.org/message-id/20230111232645.GA1957467%40nathanxps13

Andres considered the v1 approach incomplete and suggested handling
Windows signal dispatch in the interrupt handlers, then factoring that
with ProcessProcSignalBarrier():
https://www.postgresql.org/message-id/20230111204836.rqzzbcufc7gziidx%40awork3.anarazel.de
https://www.postgresql.org/message-id/20230112004014.yygcctvdyomrreup%40awork3.anarazel.de

These results suggest that both proposals fix this reproducer, with v2
closer to the earlier review direction. The old thread stopped before
the suggested helper refactor and its CommitFest entry was withdrawn.
Would it be useful for me to refresh v2 and explore that helper on
current master, or is there a preferred design now?

Best,
Harrison

Reply via email to