Обсуждение: Bug #855: pg_dump crash on linux-xfs

Поиск
Список
Период
Сортировка

Bug #855: pg_dump crash on linux-xfs

От
pgsql-bugs@postgresql.org
Дата:
Ruslan V Lopation (lrv@ufps.tomsk.su) reports a bug with a severity of 3
The lower the number the more severe it is.

Short Description
pg_dump crash on linux-xfs

Long Description
pg_dump crashes with PostgreSQL 7.3(1)  server installed on Linux-2.4.20(2.4.19) with XFS patches from
ftp://oss.sgi.com/projects/xfs/download/patches/2.4.20/xfs-2.4.20-all-i386.bz2(and earlier patches) with ACLs and DMAPI
enabledwhen pg_dump is used with compression enabled: 

[linux-xfs-host]$ pg_dump db -Fc -f dump
Segmentation fault (core dumped)

[linux-no-xfs-host]$ pg_dump -h linux-xfs-host db -Fc -f dump
Segmentation fault (core dumped)

...and dump file contains only structure, no data.

I tried moving database from XFS to reiser partition and it still crashes.

Running pg_dump with database on server that's running vanilla 2.4.20 doesn't crash.
[linux-no-xfs-host]$ pg_dump db2 -Fc -f dump2
works fine.

PostgreSQL 7.2.x works fine.

Sample Code


No file was uploaded with this report

Re: Bug #855: pg_dump crash on linux-xfs

От
Tom Lane
Дата:
pgsql-bugs@postgresql.org writes:
> [linux-xfs-host]$ pg_dump db -Fc -f dump
> Segmentation fault (core dumped)

Can you provide a stack trace from the core file?  It would also be
useful to see the last few SQL commands issued by pg_dump --- easiest
way to do this is enable query logging via
    export PGOPTIONS="-c log_statement=1"
before running pg_dump, and then look in the postmaster log.

            regards, tom lane

Re: Bug #855: pg_dump crash on linux-xfs

От
Tom Lane
Дата:
"Ruslan V. Lopatin" <lrv@ufps.tomsk.su> writes:
> Program received signal SIGSEGV, Segmentation fault.
> 0x402d3557 in strlen () from /lib/libc.so.6
> (gdb) bt
> #0  0x402d3557 in strlen () from /lib/libc.so.6
> #1  0x08056ddc in WriteStr (AH=0x806c808, c=0x6c627570 "")
>      at pg_backup_archiver.c:1519
> #2  0x0805752a in WriteToc (AH=0x806c808) at
> pg_backup_archiver.c:1851
> #3  0x0805a2ce in _CloseArchive (AH=0x806c808) at
> pg_backup_custom.c:802

Ohh ... I see the problem.  It is this misguided effort at avoiding
memory leaks:

    if (commentDeps)
    {
        for (j = 0; (*commentDeps)[j] != NULL; j++)
            free((void *) (*commentDeps)[j]);
        free(commentDeps);
    }

(about line 5447 of pg_dump.c; added in rev 1.268 of 2-Jul-02).
This is freeing the dependency data that the archive entry needs :-(

            regards, tom lane