[patch] pg_dump/pg_restore zerror() and strerror() mishap
Kunshchikov Vladimir <vladimir.kunshchikov@infotecs.ru>
From: Kunshchikov Vladimir <Vladimir.Kunshchikov@infotecs.ru>
To: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2017-06-22T08:46:21Z
Lists: pgsql-hackers
Attachments
- strerror-gzerror-zlib.patch (text/x-patch) patch
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>
Commits
-
Fix pg_dump's errno checking for zlib I/O
- 4d57e8381677 10.0 landed
- f3142c027212 9.5.8 landed
- 060393f2a136 9.6.4 landed
- 330e68734b82 9.4.13 landed
-
Add pg_basebackup tool for streaming base backups
- 048d148fe631 9.1.0 cited