Re: Repeatable crash in pg_dump (with -d2 info)

From: David Schnur <dnschnur(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: Repeatable crash in pg_dump (with -d2 info)
Date: 2011-11-28 22:20:42
Message-ID: CAANiQEndAdY+_tF_Pb7njmuQAQUsN+_gBYPOi6TtLNGPEBGUZg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-bugs

I probably can't get a stack trace, but I was able to reproduce it with
just that function. Without the function, pg_dump works fine. I can DROP
the function, pg_dump works, then add it back again and pg_dump crashes.
Here are my steps:

initdb -A md5 --no-locale -E UTF8 -U testuser -D
"C:\Users\David\Desktop\testdb" -W

pg_ctl -U testuser -D "C:\Users\David\Desktop\testdb" start

CREATE DATABASE testdb OWNER testuser;

CREATE OR REPLACE FUNCTION datastore_unpack(
data_times TIMESTAMP WITH TIME ZONE[],
data_values DOUBLE PRECISION[],
OUT data_time TIMESTAMP WITH TIME ZONE,
OUT data_value DOUBLE PRECISION
) RETURNS SETOF RECORD AS $$
SELECT $1[rowx] AS data_time, $2[rowx] AS data_value
FROM generate_series(1, array_upper($1, 1)) AS rowx;
$$ LANGUAGE SQL STABLE;

pg_dump -v -F c -x -O -f "C:\Users\David\Desktop\dumptest" -U testuser
testdb

Here's the output from pg_dump:

pg_dump: reading schemas
pg_dump: reading user-defined functions
pg_dump: reading user-defined types
pg_dump: reading procedural languages
pg_dump: reading user-defined aggregate functions
pg_dump: reading user-defined operators
pg_dump: reading user-defined operator classes
pg_dump: reading user-defined text search parsers
pg_dump: reading user-defined text search templates
pg_dump: reading user-defined text search dictionaries
pg_dump: reading user-defined text search configurations
pg_dump: reading user-defined operator families
pg_dump: reading user-defined conversions
pg_dump: reading user-defined tables
pg_dump: reading table inheritance information
pg_dump: reading rewrite rules
pg_dump: reading type casts
pg_dump: finding inheritance relationships
pg_dump: reading column info for interesting tables
pg_dump: flagging inherited columns in subtables
pg_dump: reading indexes
pg_dump: reading constraints
pg_dump: reading triggers
pg_dump: reading dependency data
pg_dump: saving encoding = UTF8
pg_dump: saving standard_conforming_strings = off
pg_dump: saving database definition

And here's the output from the postmaster:

LOG: statement: SET DATESTYLE = ISO
LOG: statement: SET extra_float_digits TO 2
LOG: statement: SET synchronize_seqscans TO off
LOG: statement: BEGIN
LOG: statement: SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
LOG: statement: SET search_path = pg_catalog
LOG: statement: SELECT tableoid, oid, nspname, (SELECT rolname FROM
pg_catalog.pg_roles WHERE oid = nspowner) as rolname, nspacl FROM
pg_namespace
LOG: statement: SELECT tableoid, oid, proname, prolang, pronargs,
proargtypes, prorettype, proacl, pronamespace,(SELECT rolname FROM
pg_catalog.pg_roles WHERE oid = proowner) as rolname FROM pg_proc WHERE NOT
proisagg AND pronamespace != (select oid from pg_namespace where nspname =
'pg_catalog')
LOG: statement: SELECT tableoid, oid, typname, typnamespace, (SELECT
rolname FROM pg_catalog.pg_roles WHERE oid = typowner) as rolname,
typinput::oid as typinput, typoutput::oid as typoutput, typelem, typrelid,
CASE WHEN typrelid = 0 THEN ' '::"char" ELSE (SELECT relkind FROM pg_class
WHERE oid = typrelid) END as typrelkind, typtype, typisdefined, typname[0]
= '_' AND typelem != 0 AND (SELECT typarray FROM pg_type te WHERE oid =
pg_type.typelem) = oid AS isarray FROM pg_type
LOG: statement: SELECT tableoid, oid, lanname, lanpltrusted,
lanplcallfoid, lanvalidator, lanacl, (SELECT rolname FROM
pg_catalog.pg_roles WHERE oid = lanowner) as lanowner FROM pg_language
WHERE lanispl ORDER BY oid
LOG: statement: SELECT tableoid, oid, proname as aggname, pronamespace as
aggnamespace, pronargs, proargtypes, (SELECT rolname FROM
pg_catalog.pg_roles WHERE oid = proowner) as rolname, proacl as aggacl FROM
pg_proc WHERE proisagg AND pronamespace != (select oid from pg_namespace
where nspname = 'pg_catalog')
LOG: statement: SELECT tableoid, oid, oprname, oprnamespace, (SELECT
rolname FROM pg_catalog.pg_roles WHERE oid = oprowner) as rolname,
oprcode::oid as oprcode FROM pg_operator
LOG: statement: SELECT tableoid, oid, opcname, opcnamespace, (SELECT
rolname FROM pg_catalog.pg_roles WHERE oid = opcowner) as rolname FROM
pg_opclass
LOG: statement: SELECT tableoid, oid, prsname, prsnamespace,
prsstart::oid, prstoken::oid, prsend::oid, prsheadline::oid,
prslextype::oid FROM pg_ts_parser
LOG: statement: SELECT tableoid, oid, tmplname, tmplnamespace,
tmplinit::oid, tmpllexize::oid FROM pg_ts_template
LOG: statement: SELECT tableoid, oid, dictname, dictnamespace, (SELECT
rolname FROM pg_catalog.pg_roles WHERE oid = dictowner) as rolname,
dicttemplate, dictinitoption FROM pg_ts_dict
LOG: statement: SELECT tableoid, oid, cfgname, cfgnamespace, (SELECT
rolname FROM pg_catalog.pg_roles WHERE oid = cfgowner) as rolname,
cfgparser FROM pg_ts_config
LOG: statement: SELECT tableoid, oid, opfname, opfnamespace, (SELECT
rolname FROM pg_catalog.pg_roles WHERE oid = opfowner) as rolname FROM
pg_opfamily
LOG: statement: SELECT tableoid, oid, conname, connamespace, (SELECT
rolname FROM pg_catalog.pg_roles WHERE oid = conowner) as rolname FROM
pg_conversion
LOG: statement: SELECT c.tableoid, c.oid, relname, relacl, relkind,
relnamespace, (SELECT rolname FROM pg_catalog.pg_roles WHERE oid =
relowner) as rolname, relchecks, reltriggers, relhasindex, relhasrules,
relhasoids, d.refobjid as owning_tab, d.refobjsubid as owning_col, (SELECT
spcname FROM pg_tablespace t WHERE t.oid = c.reltablespace) AS
reltablespace, array_to_string(c.reloptions, ', ') as reloptions from
pg_class c left join pg_depend d on (c.relkind = 'S' and d.classid =
c.tableoid and d.objid = c.oid and d.objsubid = 0 and d.refclassid =
c.tableoid and d.deptype = 'a') where relkind in ('r', 'S', 'v', 'c') order
by c.oid
LOG: statement: SELECT inhrelid, inhparent from pg_inherits
LOG: statement: SELECT tableoid, oid, rulename, ev_class as ruletable,
ev_type, is_instead, ev_enabled FROM pg_rewrite ORDER BY oid
LOG: statement: SELECT tableoid, oid, castsource, casttarget, castfunc,
castcontext FROM pg_cast ORDER BY 3,4
LOG: statement: SELECT loid FROM pg_largeobject LIMIT 1
LOG: statement: SELECT classid, objid, refclassid, refobjid, deptype FROM
pg_depend WHERE deptype != 'p' ORDER BY 1,2
LOG: statement: SELECT tableoid, oid, (SELECT rolname FROM
pg_catalog.pg_roles WHERE oid = datdba) as dba,
pg_encoding_to_char(encoding) as encoding, (SELECT spcname FROM
pg_tablespace t WHERE t.oid = dattablespace) as tablespace,
shobj_description(oid, 'pg_database') as description FROM pg_database WHERE
datname = 'testdb'
LOG: statement: SELECT description, classoid, objoid, objsubid FROM
pg_catalog.pg_description ORDER BY classoid, objoid, objsubid
LOG: statement: SET search_path = public, pg_catalog
LOG: statement: 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 =
'16386'::pg_catalog.oid
LOG: statement: SELECT pg_catalog.format_type('1185'::pg_catalog.oid, NULL)
LOG: statement: SELECT pg_catalog.format_type('1022'::pg_catalog.oid, NULL)
LOG: statement: SELECT pg_catalog.format_type('1184'::pg_catalog.oid, NULL)
LOG: statement: SELECT pg_catalog.format_type('701'::pg_catalog.oid, NULL)
LOG: statement: SELECT pg_catalog.format_type('1185'::pg_catalog.oid, NULL)
LOG: statement: SELECT pg_catalog.format_type('1022'::pg_catalog.oid, NULL)
LOG: statement: SELECT pg_catalog.format_type('2249'::pg_catalog.oid, NULL)
LOG: could not receive data from client: No connection could be made
because the target machine actively refused it.

LOG: unexpected EOF on client connection

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Tom Lane 2011-11-29 01:00:34 Re: Repeatable crash in pg_dump (with -d2 info)
Previous Message Lukasz Brodziak 2011-11-28 17:11:10 Database is in recovery mode.

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2011-11-29 00:22:38 Re: objects tied to missing extension
Previous Message Maxim Boguk 2011-11-28 21:54:30 Re: BUG #6307: intarray extention gin index does not work with Hot standby