Thread
-
pgdump tar bug (PG 9.2)
Asif Naeem <asif.naeem@enterprisedb.com> — 2012-06-11T12:46:03Z
Hi, With the following test case pgdump creates a corrupt tar file i.e. CREATE DATABASE dump_test; > \c dump_test > CREATE TABLE test_table1 (int1 int); > INSERT INTO test_table1 (SELECT * FROM generate_series(1, 1000)); > \! pg_dump -F t -f dump_test.tar dump_test Debugging shows that pg_dump tries to fopen tar file with "w" option that corrupts already opened archive file i.e. _CloseArchive() -> RestoreArchive() -> SetOutput() -> fopen(filename, > PG_BINARY_W); man fopen > ... > ... > w > Truncate file to zero length or create text file for writing. The > stream is positioned at the beginning of the file. This issue is caused by addition of the following code in function _CloseArchive() i.e. > memcpy(ropt, AH->ropt, sizeof(RestoreOptions)); It was intruduced by recent patch is as following i.e. > commit 4317e0246c645f60c39e6572644cff1cb03b4c65 > Author: Tom Lane <tgl@sss.pgh.pa.us> > Date: Tue May 29 23:22:14 2012 -0400 > Rewrite --section option to decouple it from --schema-only/--data-only. PFA patch. Thanks. Best Regards, Muhammad Asif Naeem
-
Re: pgdump tar bug (PG 9.2)
Tom Lane <tgl@sss.pgh.pa.us> — 2012-06-11T23:46:47Z
Asif Naeem <asif.naeem@enterprisedb.com> writes: > With the following test case pgdump creates a corrupt tar file i.e. Ooops :-(. Thanks for the report! regards, tom lane