Repeatable crash in pg_dump (with -d2 info) - Mailing list pgsql-admin

From David Schnur
Subject Repeatable crash in pg_dump (with -d2 info)
Date
Msg-id CAANiQEm92w70rapQhitV1qL0tpkNRo5qjpwo2fdg+iZ-AURMCg@mail.gmail.com
Whole thread Raw
Responses Re: Repeatable crash in pg_dump (with -d2 info)
List pgsql-admin
I'm seeing pg_dump [8.3.15 Windows] crash reproducibly against a particular database.  Searching the web, I found [http://grokbase.com/t/postgresql.org/pgsql-general/2001/02/pg-dump-crash/06ss55h5l35jh4bnnqfigxisy534] with a response from Tom Lane suggesting that it was probably due to a bug in pg_dump related to dumping functions.

That post was made more than 10 years ago, but I figured it was worth a try, and set my pg_dump to run with PGOPTIONS="-d2".  Sure enough, the crash is preceded by the following lines:

SELECT proretset, prosrc, probin, proallargtypes, proargmodes, proargnames, provolatile, proisstrict, prosecdef, proconfig, procost, prorows, (SELECT lanname FROM pg_catalog.pg_language WHERE oid = prolang) as lanname FROM pg_catalog.pg_proc WHERE oid = '16730'::pg_catalog.oid
SELECT pg_catalog.format_type('1185'::pg_catalog.oid, NULL)
SELECT pg_catalog.format_type('1022'::pg_catalog.oid, NULL)
SELECT pg_catalog.format_type('1184'::pg_catalog.oid, NULL)
SELECT pg_catalog.format_type('701'::pg_catalog.oid, NULL)
SELECT pg_catalog.format_type('1185'::pg_catalog.oid, NULL)
SELECT pg_catalog.format_type('1022'::pg_catalog.oid, NULL)
SELECT pg_catalog.format_type('2249'::pg_catalog.oid, NULL)

The OIDs 1185, 1022, 1184 and 701 are present in proallargtypes, so pg_dump appears to be looking up argument types for that function.  I couldn't see 2249 anywhere, though, so I ran this:

SELECT * FROM pg_catalog.pg_proc WHERE oid = '16730'

And 2249 showed up in prorettype.  The result from that last query is 'record', since the function RETURNS SETOF RECORD.

That original post turned out to be some temporary trigger function that the user simply deleted to solve the problem.  This function, however, is legitimate, and I can't simply delete it.  Does anyone know what might be happening here, and how to work around it?  Thanks!

pgsql-admin by date:

Previous
From: Ian Lea
Date:
Subject: Re: Point in time recovery
Next
From: Tom Lane
Date:
Subject: Re: Repeatable crash in pg_dump (with -d2 info)