The following bug has been logged on the website:
Bug reference: 15641
Logged by: Hans Buschmann
Email address: buschmann@nidsa.net
PostgreSQL version: 11.2
Operating system: Windows Server 2019 Standard
Description:
I recently moved a production system from PG 10.7 to 11.2 on a different
Server.
The configuration settings where mostly taken from the old system and
enhanced by new features of PG 11.
pg_prewarm was used for a long time (with no specific configuration).
Now I have added Huge page support for Windows in the OS and verified it
with vmmap tool from Sysinternals to be active.
(the shared buffers are locked in memory: Lock_WS is set).
When pg_prewarm.autoprewarm is set to on (using the default after initial
database import via pg_restore), the autoprewarm worker process
terminates immediately and generates a huge number of logfile entries
like:
CPS PRD 2019-02-17 16:11:53 CET 00000 11:> LOG: background worker
"autoprewarm worker" (PID 3996) exited with exit code 1
CPS PRD 2019-02-17 16:11:53 CET 55000 1:> ERROR: could not map dynamic
shared memory segment
There seem no timeout or waiting time to restart the autoprewarm worker in
this case.
The problem can be circumvented by disabling pg_prewarm.autoprewarm.
This behavior is transported by pg_basebackup to a physical replication
database with the same problem.
In my opinion the shared memory mapping of pr_prewarm is not aware of the
huge pages in windows and fails.
Unfortunatly I am not able to investigate the problem in the source code.
Configuration:
- Windows Server 2019 x64 (should be independent of this windows version)
- PG 11.2 64bit from EDB download on PostgeSQL Website
- Huge pages authorized in OS and verified to be used
- pg_prewarm loaded to database
With best regards
Hans Buschmann