We are experiencing segfault during pg_restore. The problem appear to be a mix with multiple jobs (-j option) and table Data exclusion (-l option). If we use 1 jobs and table exclusion => OK if we use >=2 jobs without -l options => OK
We use a bash script every night to import prod database on dev environnement. Since this update from 9.5.7 to 9.5.8, those error appeared at the first excluded table DATA.
Here is a sample database test where we have segfault.
#create test database with some fake data createdb test_import /usr/lib/postgresql/9.5/bin/psql -c 'create table "aaa" as SELECT generate_series(1,10000) AS id, md5(random()::text) AS descr;' test_import /usr/lib/postgresql/9.5/bin/psql -c 'create table "bbb" as SELECT generate_series(1,10000) AS id, md5(random()::text) AS descr;' test_import
#exclude some "table Data" from list pg_restore -l test_import.dump | egrep -v 'TABLE DATA public ('"aaa"') ' > test_dump.list
#import in new database createdb test_import2 /usr/lib/postgresql/9.5/bin/pg_restore -v -Fc -L test_dump.list -j 5 -d test_import2 test_import.dump -----------------------------
pg_restore ouput (verbose):
pg_restore: connexion à la base de données pour la restauration pg_restore: traitement de l'élément 2107 ENCODING ENCODING pg_restore: traitement de l'élément 2108 STDSTRINGS STDSTRINGS pg_restore: traitement de l'élément 2109 DATABASE test_import pg_restore: traitement de l'élément 6 SCHEMA public pg_restore: création de SCHEMA « public » pg_restore: traitement de l'élément 1 EXTENSION plpgsql pg_restore: création de EXTENSION « plpgsql » pg_restore: traitement de l'élément 181 TABLE aaa pg_restore: création de TABLE « public.aaa » Erreur de segmentation