Restore fails if using multiple threads and database is dumpedthrough pipe - Mailing list pgsql-admin

From Joni Ruuskanen
Subject Restore fails if using multiple threads and database is dumpedthrough pipe
Date
Msg-id d940b5c3b4bb00714662c0dd82d4a7841eae3586.camel@likeit.fi
Whole thread Raw
Responses Re: Restore fails if using multiple threads and database is dumped through pipe  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-admin
Hi,

After upgrading from Postgresql 11 to 12 I noticed pg_restore fails if -j / jobs parameter is specified and database is
dumpedthrough pipe.
 
This doesn't happen if dump is saved through redirect (for example: > file.dmp) or file parameter (-f).
Is this intended behaviour?


Some examples:

Dump to file: pg_dump -Fc -f dumptest-file.dmp dumptest
Restore: pg_restore -j4 -d dumptest -O -Fc --role=tomcat dumptest-file.dmp
No errors

Dump to file via stdout: pg_dump -Fc dumptest > dumptest-stdout.dmp 
Restore: pg_restore -j4 -d dumptest -O -Fc --role=tomcat dumptest-stdout.dmp
No errors

Dump to file via pipe: pg_dump -Fc dumptest | tee dumptest-pipe.dmp >/dev/null
Restore: pg_restore -j4 -d dumptest -O -Fc --role=tomcat dumptest-pipe.dmp
pg_restore: error: could not find block ID 5648 in archive -- possibly due to out-of-order restore request, which
cannotbe handled due to lack of data offsets in archive
 
pg_restore: error: a worker process died unexpectedly

Piped dump is successfully restored if using only 1 thread/job.



Regards,
Joni Ruuskanen




pgsql-admin by date:

Previous
From: Laurenz Albe
Date:
Subject: Re: Ver. 12.1 successfully installed on Win 10 but having troublewith jdbc jar
Next
From: Tom Lane
Date:
Subject: Re: Restore fails if using multiple threads and database is dumped through pipe