Обсуждение: BUG #4089: When available disk space is low pg_stop_backup() fails, as do subsequent recovery attempts.
The following bug has been logged online:
Bug reference: 4089
Logged by: John Smith
Email address: sodgodofall@gmail.com
PostgreSQL version: 8.3.0
Operating system: Linux 2.6.20-gentoo-r8
Description: When available disk space is low pg_stop_backup() fails,
as do subsequent recovery attempts.
Details:
Steps to reproduce:
-- start with a running PG instance with WAL archiving enabled
-- select pg_start_backup('test');
-- Fill up the disk on which the data directory is present
-- select pg_stop_backup();
-- fails with: ERROR: could not write file
"pg_xlog/000000010000000000000000.004989E8.backup": No space left on device
-- at this point there is a 0-byte file
pg_xlog/000000010000000000000000.004989E8.backup present on disk
-- stop and start PG
-- recovery fails with: FATAL: invalid data in file
"000000010000000000000000.004989E8.backup"
-- NOTE: At this point removing 000000010000000000000000.004989E8.backup
allows PG to start successfully
On Fri, Apr 4, 2008 at 7:46 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> "John Smith" <sodgodofall@gmail.com> writes:
> > Steps to reproduce:
> > -- start with a running PG instance with WAL archiving enabled
> > -- select pg_start_backup('test');
> > -- Fill up the disk on which the data directory is present
> > -- select pg_stop_backup();
> > -- fails with: ERROR: could not write file
> > "pg_xlog/000000010000000000000000.004989E8.backup": No space left on device
> > -- at this point there is a 0-byte file
> > pg_xlog/000000010000000000000000.004989E8.backup present on disk
> > -- stop and start PG
> > -- recovery fails with: FATAL: invalid data in file
> > "000000010000000000000000.004989E8.backup"
> > -- NOTE: At this point removing 000000010000000000000000.004989E8.backup
> > allows PG to start successfully
>
> What do you see as the bug here? Seems like reasonable behavior to me.
>
> regards, tom lane
>
I was expecting one of two things:
1. The zero-byte file is removed upon failure to write during
pg_stop_backup() (or )
2. The zero-byte file is ignored or deleted on startup, since the
administrator has no choice but to delete the file upon a failed
startup.
- John
"John Smith" <sodgodofall@gmail.com> writes:
> Steps to reproduce:
> -- start with a running PG instance with WAL archiving enabled
> -- select pg_start_backup('test');
> -- Fill up the disk on which the data directory is present
> -- select pg_stop_backup();
> -- fails with: ERROR: could not write file
> "pg_xlog/000000010000000000000000.004989E8.backup": No space left on device
> -- at this point there is a 0-byte file
> pg_xlog/000000010000000000000000.004989E8.backup present on disk
> -- stop and start PG
> -- recovery fails with: FATAL: invalid data in file
> "000000010000000000000000.004989E8.backup"
> -- NOTE: At this point removing 000000010000000000000000.004989E8.backup
> allows PG to start successfully
What do you see as the bug here? Seems like reasonable behavior to me.
regards, tom lane