Thread

  1. 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
    
  2. 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