pg_receivewal.exe unhandled exception in zlib1.dll

From: Juan José Santamaría Flecha <juanjo(dot)santamaria(at)gmail(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: pg_receivewal.exe unhandled exception in zlib1.dll
Date: 2022-02-11 15:33:11
Message-ID: CAC+AXB1iY4pM=o55OBuUy30LmUo5hjY83=TcA-NgY3CGZpzJmA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello,

If you execute pg_receivewal.exe with the option "--compression-method
gzip" it will fail with no error. You can see an error in the db log:

2022-02-10 11:46:32.725 CET [11664][walsender] [pg_receivewal][3/0:0] LOG:
could not receive data from client: An existing connection was forcibly
closed by the remote host.

Tracing the execution you can see:

Unhandled exception at 0x00007FFEA78C1208 (ucrtbase.dll) in An invalid
parameter was passed to a function that considers invalid parameters fatal.
ucrtbase.dll!00007ff8e8ae36a2() Unknown
> zlib1.dll!gz_comp(gz_state * state, int flush) Line 111 C
zlib1.dll!gz_write(gz_state * state, const void * buf, unsigned __int64
len) Line 235 C
pg_receivewal.exe!dir_write(void * f, const void * buf, unsigned __int64
count) Line 300 C
pg_receivewal.exe!ProcessXLogDataMsg(pg_conn * conn, StreamCtl * stream,
char * copybuf, int len, unsigned __int64 * blockpos) Line 1150 C
pg_receivewal.exe!HandleCopyStream(pg_conn * conn, StreamCtl * stream,
unsigned __int64 * stoppos) Line 850 C
pg_receivewal.exe!ReceiveXlogStream(pg_conn * conn, StreamCtl * stream)
Line 605 C
pg_receivewal.exe!StreamLog() Line 636 C
pg_receivewal.exe!main(int argc, char * * argv) Line 1005 C

The problem comes from the file descriptor passed to gzdopen() in
'src/bin/pg_basebackup/walmethods.c'. Using gzopen() instead, solves the
issue without ifdefing for WIN32. Please find attached a patch for so.

Regards,

Juan José Santamaría Flecha

Attachment Content-Type Size
0001-pg_receivewal-zlib-WIN32-exception.patch application/x-patch 497 bytes

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Justin Pryzby 2022-02-11 15:35:49 Re: pgsql: Add TAP test to automate the equivalent of check_guc
Previous Message Juan José Santamaría Flecha 2022-02-11 15:31:20 OpenSSL conflicts with wincrypt.h