[patch] pg_dump/pg_restore zerror() and strerror() mishap

From: Kunshchikov Vladimir <Vladimir(dot)Kunshchikov(at)infotecs(dot)ru>
To: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: [patch] pg_dump/pg_restore zerror() and strerror() mishap
Date: 2017-06-22 08:46:21
Message-ID: 1498120508308.9826@infotecs.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello,

our testing team has noticed apparently wrong backup/restore error messages like this:

pg_restore: [compress_io] could not read from input file: success
pg_dump: [directory archiver] could not write to output file: success

Such "success" messages are caused by calling strerror() after gzread()/gzwrite() failures.

In order to properly decode errors, there should be used gzerror() instead of strerror():
http://refspecs.linuxbase.org/LSB_2.1.0/LSB-generic/LSB-generic/zlib-gzerror-1.html

Errors should be like this:
pg_restore: [compress_io] could not read from input file: d3/2811.dat.gz: invalid distance too far back

Attached small fix for this issue.

You can view that patch online on our github:
https://github.com/Infotecs/postgres/commit/1578f5011ad22d78ae059a4ef0924426fd6db762

--
Best regards,
Vladimir Kunschikov
Lead software developer
IDS project
InfoTeCS JSC

<http://portal.infotecs.int/company/structure/Pages/detailsDepartment.aspx?idDepartment=235&idCompany=17>

Attachment Content-Type Size
strerror-gzerror-zlib.patch text/x-patch 4.7 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Yugo Nagata 2017-06-22 08:56:38 Re: Incorrect documentation about pg_stat_activity
Previous Message Ashutosh Bapat 2017-06-22 08:44:53 Re: Incorrect documentation about pg_stat_activity