Thread: BUG #2645: pg_restore crashes

BUG #2645: pg_restore crashes

From
"Thomas Verchow"
Date:
The following bug has been logged online:

Bug reference:      2645
Logged by:          Thomas Verchow
Email address:      thomas@verchow.de
PostgreSQL version: 8.1.4
Operating system:   GNU/Linux, Debian sarge
Description:        pg_restore crashes
Details:

pg_restore ends with ,,Segmentation fault'' or ,,out of memory'' while
trying to restore a large custom-archive-backup (~ 30 GB).

If i choose a table, witch is at the beginning of the backup (according to
pg_restore --list), it works fine.

With smalltable, at the end of the archive, it
ends with a SegFault. So does the same with a big table.
(pg_restore --table=smalltable backup > out.sql)

The Error ,,out of memory'' appears during a restore into the db (using
--dbname=...).

It seems, that pg_restore can't read data behind a limit (2 GB, 8 GB?).

I piped pg_restore through gzip. After a filesize of ~ 7 GB pg_restore
crashes with ,,out of memory''. If the custom archive has the same
compression level, the assumtion for a 8 GB restriction seems to be valid.

This is bad, because you can't use pg_dump & pg_restore for bigger dbs :(

Re: BUG #2645: pg_restore crashes

From
Tom Lane
Date:
"Thomas Verchow" <thomas@verchow.de> writes:
> pg_restore ends with ,,Segmentation fault'' or ,,out of memory'' while
> trying to restore a large custom-archive-backup (~ 30 GB).

Can you provide a test case for this?  Perhaps a SQL script to generate
a database full of junk data, which when dumped and restored causes the
failure?

            regards, tom lane

Re: BUG #2645: pg_restore crashes

From
Andrew MacLeod
Date:
I observed this symptom with a 4Mb .backup file (details of commands issued below).

The restore always failed at the same rogue table.

On going back to the source DB, I experienced trouble on that table: vacuum worked, but vacuum FREEZE hung after which
SELECTcount(*) hung! 

In my case, the "workaround" was to stop the source DB server and redo the backup.

My (somewhat speculative) conclusion is that there may be a problem with performing hot-backups on a live database.

Andrew.

 BACKUP:
 pg_dump.exe -i -h localhost -p 5432 -U Administrator -F c -b -v -f "D:\dbname.backup" dbname
 Windows Server 2003, postgres 8.1.5, pgAdmin3 v1.4.3

 RESTORE:
  Windows XP SP2, postgres 8.1.1 pgAdmin3 v1.4.1:
 C:\Program Files\PostgreSQL\8.1\bin\pg_restore.exe -i -h localhost -p 5432 -U postgres -d dbname -v "Z:\dbname.backup"


---------------------------------
 All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease of use." - PC Magazine