Re: BUG #16951: pg_restore segfaults on custom format piped from a different version of PG

From: Sergey KOPOSOV <Sergey(dot)Koposov(at)ed(dot)ac(dot)uk>
To: "tgl(at)sss(dot)pgh(dot)pa(dot)us" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: BUG #16951: pg_restore segfaults on custom format piped from a different version of PG
Date: 2021-03-31 21:45:08
Message-ID: 5d848bddbb3b6421af5a742e36ede542e719c492.camel@ed.ac.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs


On Wed, 2021-03-31 at 17:27 -0400, Tom Lane wrote:
> This email was sent to you by someone outside the University.
> You should only click on links or attachments if you are certain that the email is genuine and the content is safe.
>
> PG Bug reporting form <noreply(at)postgresql(dot)org> writes:
> > I have a reproducible case of segfaulting pg_restore when trying to restore
> > from pg_dump of a different version. Specifically at least pg_restore from
> > 10 crashes from pg_dump 12.
>
> When I try that I get
>
> pg_restore: [archiver] unsupported version (1.14) in file header
>
> and that test is done first thing in ReadHead(), before the place
> you identify. I suspect you are dealing with a corrupt archive
> file, not a version mismatch.

I am pretty sure that is not the case.

I've just done that now
skoposov_remote(at)wsdb:~/postgresql-10.16$ ssh -o Compression=no koposov(at)HOSTNAME '/opt/pgsql/bin/pg_dump -n SCHEMA -Fc -U dbadmin wsdb' | head -c 32768 >
xx.short
(obviously the crash doesn't happen even if I don't put 'head -n ...')

skoposov_remote(at)wsdb:~/postgresql-10.16$ cat xx.short | pg_restore -U dbadmin -h localhost -d wsdb
Segmentation fault (core dumped)

I attach the file (1 kb of it)

I also noticed when I tried to run pg_restore in the debugger the crash doesn't happen.

gdb --args pg_restore -U dbadmin -h localhost -d wsdb
(gdb) run < /tmp/xx.short
Starting program: /usr0/home/skoposov_remote/postgresql-10.16/src/bin/pg_dump/pg_restore < /tmp/xx.short
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
pg_restore: [archiver] unsupported version (1.14) in file header
[Inferior 1 (process 14109) exited with code 01]

but it does if I pipe it...

Sergey

The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. Is e buidheann carthannais a th’ ann an Oilthigh Dhùn Èideann, clàraichte an Alba, àireamh clàraidh SC005336.

Attachment Content-Type Size
xx1.short model/x.stl-binary 1000 bytes

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2021-03-31 22:47:04 Re: BUG #16951: pg_restore segfaults on custom format piped from a different version of PG
Previous Message Tom Lane 2021-03-31 21:27:11 Re: BUG #16951: pg_restore segfaults on custom format piped from a different version of PG