Re: pg_basebackup check vs Windows file path limits - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: pg_basebackup check vs Windows file path limits
Date
Msg-id 1fab4bdd-d96a-29c7-eecf-55e55774a878@dunslane.net
Whole thread Raw
In response to Re: pg_basebackup check vs Windows file path limits  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Responses Re: pg_basebackup check vs Windows file path limits
List pgsql-hackers


On 2023-11-11 Sa 11:31, Alvaro Herrera wrote:
On 2023-Jul-08, Andrew Dunstan wrote:

# Running: pg_basebackup -D C:\\tools\\nmsys64\\home\\pgrunner\\bf\\root\\REL_16_STABLE\\pgsql.build/testrun/pg_basebackup/010_pg_basebackup/data/t_010_pg_basebackup_main_data/backup/tarbackup2 -h C:/tools/nmsys64/tmp/63ohSgsh21 -p 54699 --checkpoint fast --no-sync -Ft
WARNING:  aborting backup due to backend exiting before pg_backup_stop was called
pg_basebackup: error: could not initiate base backup: ERROR:  could not get junction for "./pg_replslot": More data is available.
Why not patch pgreadlink to use the method recommended by Microsoft,
that DeviceIoControl() is called first with a NULL reparseBuffer to
determine the size needed, then a second time with a buffer of that
size?

https://learn.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-deviceiocontrol


Hmm, here's what that page says - I can't see it saying what you're suggesting here - am I missing something?:


[in] nOutBufferSize

The size of the output buffer, in bytes.

[out, optional] lpBytesReturned

A pointer to a variable that receives the size of the data stored in the output buffer, in bytes.

If the output buffer is too small to receive any data, the call fails, GetLastError returns ERROR_INSUFFICIENT_BUFFER, and lpBytesReturned is zero.

If the output buffer is too small to hold all of the data but can hold some entries, some drivers will return as much data as fits. In this case, the call fails, GetLastError returns ERROR_MORE_DATA, and lpBytesReturned indicates the amount of data received. Your application should call DeviceIoControl again with the same operation, specifying a new starting point.



cheers


andrew

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

pgsql-hackers by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: proposal: possibility to read dumped table's name from file
Next
From: Bharath Rupireddy
Date:
Subject: Re: Improve WALRead() to suck data directly from WAL buffers when possible