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

Поиск
Список
Период
Сортировка
От David Schnur
Тема Re: Repeatable crash in pg_dump (with -d2 info)
Дата
Msg-id CAANiQEndAdY+_tF_Pb7njmuQAQUsN+_gBYPOi6TtLNGPEBGUZg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Repeatable crash in pg_dump (with -d2 info)  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Repeatable crash in pg_dump (with -d2 info)  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Repeatable crash in pg_dump (with -d2 info)  (Craig Ringer <ringerc@ringerc.id.au>)
Список pgsql-admin
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

В списке pgsql-admin по дате отправления:

Предыдущее
От: Lukasz Brodziak
Дата:
Сообщение: Database is in recovery mode.
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Repeatable crash in pg_dump (with -d2 info)