Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dO1Qz-0000KS-Jg for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Jun 2017 12:42:05 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dO1Qz-0005fH-6P for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Jun 2017 12:42:05 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dNxl0-0002Ah-C4 for pgsql-hackers@postgresql.org; Thu, 22 Jun 2017 08:46:30 +0000 Received: from mx0.infotecs.ru ([91.244.183.115]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dNxkw-0006Q2-AV for pgsql-hackers@postgresql.org; Thu, 22 Jun 2017 08:46:29 +0000 Received: from MSK-EX-04.infotecs-nt (msk-ex-04.infotecs-nt [10.0.7.74]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx0.infotecs.ru (Postfix) with ESMTPS id 97877CA18D for ; Thu, 22 Jun 2017 11:46:23 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=infotecs.ru; s=mx; t=1498121184; bh=AH/QcSFRVSAzuGWsxVnL6YTapxt+IF8JibVdKYxZqC4=; h=From:To:Subject:Date; b=mBqo5dyXwKGCI5m7MWCNW4+JjFTcpfp7BAde1kQ5vUAyXpW209x1yn+Qx7baEQPWV hd5VbkYv5KGSRE7cyYp7BxnHLYng+h4A2/9r2BUSo8nb0fYWD7FPeMEzzPN6QNvjsv IAANWx58nHRUJohNDM2EGIYJfhhcooafKxR6Keho= Received: from MSK-EX-03.infotecs-nt (10.0.7.73) by MSK-EX-04.infotecs-nt (10.0.7.74) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Thu, 22 Jun 2017 11:46:22 +0300 Received: from MSK-EX-03.infotecs-nt ([fe80::b1af:4eb9:3181:a274]) by MSK-EX-03.infotecs-nt ([fe80::b1af:4eb9:3181:a274%16]) with mapi id 15.00.1210.000; Thu, 22 Jun 2017 11:46:22 +0300 From: Kunshchikov Vladimir To: "pgsql-hackers@postgresql.org" Subject: [patch] pg_dump/pg_restore zerror() and strerror() mishap Thread-Topic: [patch] pg_dump/pg_restore zerror() and strerror() mishap Thread-Index: AQHS6zMy2h4IVOLogEaPttzhjwdFBg== Date: Thu, 22 Jun 2017 08:46:21 +0000 Message-ID: <1498120508308.9826@infotecs.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [11.0.5.83] x-exclaimer-md-config: 3e92c563-8386-4d9f-9ebb-dafaf99fefca Content-Type: multipart/mixed; boundary="_004_14981205083089826infotecsru_" MIME-Version: 1.0 X-KLMS-Rule-ID: 1 X-KLMS-Message-Action: clean X-KLMS-AntiSpam-Lua-Profiles: 113967 [Jun 22 2017] X-KLMS-AntiSpam-Version: 5.7.49.0 X-KLMS-AntiSpam-Envelope-From: Vladimir.Kunshchikov@infotecs.ru X-KLMS-AntiSpam-Rate: 0 X-KLMS-AntiSpam-Status: not_detected X-KLMS-AntiSpam-Method: none X-KLMS-AntiSpam-Info: LuaCore: 6 6 , {Tracking_mailer_missed_ms}, {Tracking_mailer_missed_ms_exch, bound}, 127.0.0.200:5.2.1;infotecs.ru:7.1.1;refspecs.linuxbase.org:7.1.1;d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;portal.infotecs.int:7.1.1;127.0.0.199:7.1.2,5.2.1;github.com:4.0.4,4.0.3,7.1.1 X-KLMS-AntiSpam-Interceptor-Info: scan successful X-KLMS-AntiPhishing: Clean, 2017/06/15 11:56:22 X-KLMS-AntiVirus: Kaspersky Security 8.0 for Linux Mail Server, version 8.0.1.721, bases: 2017/06/22 02:59:00 #9821744; khse: 2015-01-01 01:01:01 X-KLMS-AntiVirus-Status: Clean, skipped List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org --_004_14981205083089826infotecsru_ Content-Type: multipart/alternative; boundary="_000_14981205083089826infotecsru_" --_000_14981205083089826infotecsru_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hello, our testing team has noticed apparently wrong backup/restore error mess= ages 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()/gzw= rite() 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-gzerr= or-1.html Errors should be like this: pg_restore: [compress_io] could not read from input file: d3/2811.dat.gz: i= nvalid 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/1578f5011ad22d78ae059a4ef092442= 6fd6db762 -- Best regards, Vladimir Kunschikov Lead software developer IDS project InfoTeCS JSC --_000_14981205083089826infotecsru_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
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() in= stead 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: i= nvalid 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/1578f5011ad22d78ae059a4ef092442= 6fd6db762


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

--_000_14981205083089826infotecsru_-- --_004_14981205083089826infotecsru_ Content-Type: text/x-patch; name="strerror-gzerror-zlib.patch" Content-Description: strerror-gzerror-zlib.patch Content-Disposition: attachment; filename="strerror-gzerror-zlib.patch"; size=4762; creation-date="Thu, 22 Jun 2017 08:45:47 GMT"; modification-date="Thu, 22 Jun 2017 08:45:47 GMT" Content-Transfer-Encoding: base64 Y29tbWl0IDE1NzhmNTAxMWFkMjJkNzhhZTA1OWE0ZWYwOTI0NDI2ZmQ2ZGI3 NjIKQXV0aG9yOiBLdW5zaGNoaWtvdiBWbGFkaW1pciA8S3Vuc2hjaGlrb3Yu VmxhQGluZm90ZWNzLnJ1PgpEYXRlOiAgIFdlZCBKdW4gMjEgMTE6MzM6NDcg MjAxNyArMDMwMAoKICAgIGZpeGVkIGd6X2Vycm9yL3N0cmVycm9yIG1pc2hh cAoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19pby5j IGIvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNzX2lvLmMKaW5kZXggNjMxZmEz MzdlNi4uNmU0OGQ5ZDc2NSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L2NvbXByZXNzX2lvLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbXByZXNz X2lvLmMKQEAgLTQyMiwyMyArNDIyLDYgQEAgV3JpdGVEYXRhVG9BcmNoaXZl Tm9uZShBcmNoaXZlSGFuZGxlICpBSCwgQ29tcHJlc3NvclN0YXRlICpjcywK IH0KIAogCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIENvbXByZXNz ZWQgc3RyZWFtIEFQSQotICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKi8K LQotLyoKLSAqIGNmcCByZXByZXNlbnRzIGFuIG9wZW4gc3RyZWFtLCB3cmFw cGluZyB0aGUgdW5kZXJseWluZyBGSUxFIG9yIGd6RmlsZQotICogcG9pbnRl ci4gVGhpcyBpcyBvcGFxdWUgdG8gdGhlIGNhbGxlcnMuCi0gKi8KLXN0cnVj dCBjZnAKLXsKLQlGSUxFCSAgICp1bmNvbXByZXNzZWRmcDsKLSNpZmRlZiBI QVZFX0xJQloKLQlnekZpbGUJCWNvbXByZXNzZWRmcDsKLSNlbmRpZgotfTsK LQogI2lmZGVmIEhBVkVfTElCWgogc3RhdGljIGludAloYXNTdWZmaXgoY29u c3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKnN1ZmZpeCk7CiAjZW5k aWYKQEAgLTU5Myw3ICs1NzYsNyBAQCBjZnJlYWQodm9pZCAqcHRyLCBpbnQg c2l6ZSwgY2ZwICpmcCkKIAkJcmV0ID0gZ3pyZWFkKGZwLT5jb21wcmVzc2Vk ZnAsIHB0ciwgc2l6ZSk7CiAJCWlmIChyZXQgIT0gc2l6ZSAmJiAhZ3plb2Yo ZnAtPmNvbXByZXNzZWRmcCkpCiAJCQlleGl0X2hvcnJpYmx5KG1vZHVsZW5h bWUsCi0JCQkJCSJjb3VsZCBub3QgcmVhZCBmcm9tIGlucHV0IGZpbGU6ICVz XG4iLCBzdHJlcnJvcihlcnJubykpOworCQkJCQkiY291bGQgbm90IHJlYWQg ZnJvbSBpbnB1dCBmaWxlOiAlc1xuIiwgZ2V0X2d6X2Vycm9yKGZwLT5jb21w cmVzc2VkZnApKTsKIAl9CiAJZWxzZQogI2VuZGlmCkBAIC02MjksNyArNjEy LDcgQEAgY2ZnZXRjKGNmcCAqZnApCiAJCXsKIAkJCWlmICghZ3plb2YoZnAt PmNvbXByZXNzZWRmcCkpCiAJCQkJZXhpdF9ob3JyaWJseShtb2R1bGVuYW1l LAotCQkJCQkiY291bGQgbm90IHJlYWQgZnJvbSBpbnB1dCBmaWxlOiAlc1xu Iiwgc3RyZXJyb3IoZXJybm8pKTsKKwkJCQkJImNvdWxkIG5vdCByZWFkIGZy b20gaW5wdXQgZmlsZTogJXNcbiIsIGdldF9nel9lcnJvcihmcC0+Y29tcHJl c3NlZGZwKSk7CiAJCQllbHNlCiAJCQkJZXhpdF9ob3JyaWJseShtb2R1bGVu YW1lLAogCQkJCQkJCSJjb3VsZCBub3QgcmVhZCBmcm9tIGlucHV0IGZpbGU6 IGVuZCBvZiBmaWxlXG4iKTsKQEAgLTcxMCw0ICs2OTMsMTYgQEAgaGFzU3Vm Zml4KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpzdWZmaXgp CiAJCQkJICBzdWZmaXhsZW4pID09IDA7CiB9CiAKK2NvbnN0IGNoYXIgKgor Z2V0X2d6X2Vycm9yKGd6RmlsZSBnemYpCit7CisJaW50IGVycm51bTsKKwlz dGF0aWMgY29uc3QgY2hhciBmYWxsYmFja1tdID0gIlpsaWIgZXJyb3IiOwor CWNvbnN0IGludCBtYXhsZW4gPSAyNTU7CisJY29uc3QgY2hhciAqZXJybXNn ID0gZ3plcnJvcihnemYsICZlcnJudW0pOworCWlmKCFlcnJtc2cgfHwgIW1l bWNocihlcnJtc2csIDAsIG1heGxlbikpCisJCWVycm1zZyA9IGZhbGxiYWNr OworCisJcmV0dXJuIGVycm51bSA9PSBaX0VSUk5PID8gc3RyZXJyb3IoZXJy bm8pIDogZXJybXNnOworfQogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvY29tcHJlc3NfaW8uaCBiL3NyYy9iaW4vcGdfZHVtcC9jb21w cmVzc19pby5oCmluZGV4IDhmMmU3NTJjYmEuLjkxMDA3YjA0MmIgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9jb21wcmVzc19pby5oCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9jb21wcmVzc19pby5oCkBAIC0yNyw2ICsyNywyNCBA QCB0eXBlZGVmIGVudW0KIAlDT01QUl9BTEdfTElCWgogfSBDb21wcmVzc2lv bkFsZ29yaXRobTsKIAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBD b21wcmVzc2VkIHN0cmVhbSBBUEkKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICovCisKKy8qCisgKiBjZnAgcmVwcmVzZW50cyBhbiBvcGVuIHN0cmVh bSwgd3JhcHBpbmcgdGhlIHVuZGVybHlpbmcgRklMRSBvciBnekZpbGUKKyAq IHBvaW50ZXIuIFRoaXMgaXMgb3BhcXVlIHRvIHRoZSBjYWxsZXJzLgorICov Cit0eXBlZGVmIHN0cnVjdCAKK3sKKwlGSUxFCSAgICp1bmNvbXByZXNzZWRm cDsKKyNpZmRlZiBIQVZFX0xJQloKKwlnekZpbGUJCWNvbXByZXNzZWRmcDsK KyNlbmRpZgorfSBjZnA7CisKKwogLyogUHJvdG90eXBlIGZvciBjYWxsYmFj ayBmdW5jdGlvbiB0byBXcml0ZURhdGFUb0FyY2hpdmUoKSAqLwogdHlwZWRl ZiB2b2lkICgqV3JpdGVGdW5jKSAoQXJjaGl2ZUhhbmRsZSAqQUgsIGNvbnN0 IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbik7CiAKQEAgLTUyLDEwICs3MCw2IEBA IGV4dGVybiB2b2lkIFJlYWREYXRhRnJvbUFyY2hpdmUoQXJjaGl2ZUhhbmRs ZSAqQUgsIGludCBjb21wcmVzc2lvbiwKIGV4dGVybiB2b2lkIFdyaXRlRGF0 YVRvQXJjaGl2ZShBcmNoaXZlSGFuZGxlICpBSCwgQ29tcHJlc3NvclN0YXRl ICpjcywKIAkJCQkgICBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgZExlbik7 CiBleHRlcm4gdm9pZCBFbmRDb21wcmVzc29yKEFyY2hpdmVIYW5kbGUgKkFI LCBDb21wcmVzc29yU3RhdGUgKmNzKTsKLQotCi10eXBlZGVmIHN0cnVjdCBj ZnAgY2ZwOwotCiBleHRlcm4gY2ZwICpjZm9wZW4oY29uc3QgY2hhciAqcGF0 aCwgY29uc3QgY2hhciAqbW9kZSwgaW50IGNvbXByZXNzaW9uKTsKIGV4dGVy biBjZnAgKmNmb3Blbl9yZWFkKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNo YXIgKm1vZGUpOwogZXh0ZXJuIGNmcCAqY2ZvcGVuX3dyaXRlKGNvbnN0IGNo YXIgKnBhdGgsIGNvbnN0IGNoYXIgKm1vZGUsIGludCBjb21wcmVzc2lvbik7 CkBAIC02NSw1ICs3OSw2IEBAIGV4dGVybiBpbnQJY2ZnZXRjKGNmcCAqZnAp OwogZXh0ZXJuIGNoYXIgKmNmZ2V0cyhjZnAgKmZwLCBjaGFyICpidWYsIGlu dCBsZW4pOwogZXh0ZXJuIGludAljZmNsb3NlKGNmcCAqZnApOwogZXh0ZXJu IGludAljZmVvZihjZnAgKmZwKTsKK2V4dGVybiBjb25zdCBjaGFyICogZ2V0 X2d6X2Vycm9yKGd6RmlsZSBnemYpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGlyZWN0b3J5LmMgYi9zcmMv YmluL3BnX2R1bXAvcGdfYmFja3VwX2RpcmVjdG9yeS5jCmluZGV4IDc5OTIy ZGE4YmEuLjYxOTYyMjdhMDQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXBfZGlyZWN0b3J5LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cF9kaXJlY3RvcnkuYwpAQCAtNDIsNiArNDIsMTUgQEAKICNp bmNsdWRlIDxkaXJlbnQuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogCisj aWZkZWYgV1JJVEVfRVJST1JfRVhJVAorI3VuZGVmIFdSSVRFX0VSUk9SX0VY SVQKKyNlbmRpZgorI2RlZmluZSBXUklURV9FUlJPUl9FWElUIFwKKwlkbyB7 IFwKKwkJZXhpdF9ob3JyaWJseShtb2R1bGVuYW1lLCAiY291bGQgbm90IHdy aXRlIHRvIG91dHB1dCBmaWxlOiAlc1xuIiwgXAorCQljdHggJiYgY3R4LT5k YXRhRkggJiYgY3R4LT5kYXRhRkgtPmNvbXByZXNzZWRmcD8gZ2V0X2d6X2Vy cm9yKGN0eC0+ZGF0YUZILT5jb21wcmVzc2VkZnApIDogc3RyZXJyb3IoZXJy bm8pKTsgXAorCX0gd2hpbGUgKDApCisKIHR5cGVkZWYgc3RydWN0CiB7CiAJ LyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfdGFy LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX3Rhci5jCmluZGV4IGEy YjMyMGYzNzEuLjBiN2Y2NTE1MzcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19iYWNrdXBfdGFyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cF90YXIuYwpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgInBn dGFyLmgiCiAjaW5jbHVkZSAiY29tbW9uL2ZpbGVfdXRpbHMuaCIKICNpbmNs dWRlICJmZV91dGlscy9zdHJpbmdfdXRpbHMuaCIKKyNpbmNsdWRlICJjb21w cmVzc19pby5oIgogCiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRl IDxjdHlwZS5oPgpAQCAtNTU2LDcgKzU1Nyw3IEBAIF90YXJSZWFkUmF3KEFy Y2hpdmVIYW5kbGUgKkFILCB2b2lkICpidWYsIHNpemVfdCBsZW4sIFRBUl9N RU1CRVIgKnRoLCBGSUxFICpmaCkKIAkJCQlyZXMgPSBHWlJFQUQoJigoY2hh ciAqKSBidWYpW3VzZWRdLCAxLCBsZW4sIHRoLT56RkgpOwogCQkJCWlmIChy ZXMgIT0gbGVuICYmICFHWkVPRih0aC0+ekZIKSkKIAkJCQkJZXhpdF9ob3Jy aWJseShtb2R1bGVuYW1lLAotCQkJCQkiY291bGQgbm90IHJlYWQgZnJvbSBp bnB1dCBmaWxlOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKKwkJCQkJImNv dWxkIG5vdCByZWFkIGZyb20gaW5wdXQgZmlsZTogJXNcbiIsIGdldF9nel9l cnJvcih0aC0+ekZIKSk7CiAJCQl9CiAJCQllbHNlCiAJCQl7Cg== --_004_14981205083089826infotecsru_ Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --_004_14981205083089826infotecsru_--