Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nPn0O-0002gt-MP for pgsql-general@arkaria.postgresql.org; Thu, 03 Mar 2022 15:04:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nPn0N-0003wp-LS for pgsql-general@arkaria.postgresql.org; Thu, 03 Mar 2022 15:04:35 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nPn0N-0003wf-55 for pgsql-general@lists.postgresql.org; Thu, 03 Mar 2022 15:04:35 +0000 Received: from lana.depesz.com ([88.198.49.178] helo=depesz.com) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nPn0J-0004Ai-KE for pgsql-general@lists.postgresql.org; Thu, 03 Mar 2022 15:04:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=depesz.com; s=20170201; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To: Message-ID:Subject:To:Sender:From:Date:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=UUH27HPIcVv2kXbE6XLln2c3CDawYYUjPQFPpsFQJYo=; b=nDVmQs2EWlttzmcOYuZRwzjOO7 9V82qwImoQ2ITLeueqltcq8ZlTLSDARCWPszhQSCXGGDHWvumvMz7GnNzLONXz7FIsBebanq/A9Y4 eoufMx2e7UlYK9jXvISUmY2lxQC8niAsEi8dWkfzaS0KNz/qri6oI729LZfDCQWHJmcQ=; Received: from lana.depesz.com ([88.198.49.178] helo=depesz.com) by depesz.com with esmtpa (Exim 4.92) (envelope-from ) id 1nPn0G-0006p9-V3 for pgsql-general@lists.postgresql.org; Thu, 03 Mar 2022 16:04:28 +0100 Date: Thu, 3 Mar 2022 16:04:28 +0100 From: hubert depesz lubaczewski Sender: depesz@depesz.com To: PostgreSQL General Subject: Interesting fail when migrating Pg from Ubuntu Bionic to Focal Message-ID: <20220303150428.GA26036@depesz.com> Reply-To: depesz@depesz.com MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable User-Agent: Mutt/1.10.1 (2018-07-13) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, I know it's going to be most likely due to glibc and locales, but I found interesting case that I can't figure out how to fix. We have pg 12.6 on bionic. Works. Added focal replica (binary). Replicates OK, but then fails when I try to pg_dump -s. Error is: pg_dump: error: query failed: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. pg_dump: error: query was: SELECT p.tableoid, p.oid, p.proname, p.prolang, = p.pronargs, p.proargtypes, p.prorettype, (SELECT pg_catalog.array_agg(acl O= RDER BY row_n) FROM (SELECT acl, row_n FROM pg_catalog.unnest(coalesce(p.pr= oacl,pg_catalog.acldefault('f',p.proowner))) WITH ORDINALITY AS perm(acl,ro= w_n) WHERE NOT EXISTS ( SELECT 1 FROM pg_catalog.unnest(coalesce(pip.initpr= ivs,pg_catalog.acldefault('f',p.proowner))) AS init(init_acl) WHERE acl =3D= init_acl)) as foo) AS proacl, (SELECT pg_catalog.array_agg(acl ORDER BY ro= w_n) FROM (SELECT acl, row_n FROM pg_catalog.unnest(coalesce(pip.initprivs,= pg_catalog.acldefault('f',p.proowner))) WITH ORDINALITY AS initp(acl,row_n)= WHERE NOT EXISTS ( SELECT 1 FROM pg_catalog.unnest(coalesce(p.proacl,pg_ca= talog.acldefault('f',p.proowner))) AS permp(orig_acl) WHERE acl =3D orig_ac= l)) as foo) AS rproacl, NULL AS initproacl, NULL AS initrproacl, p.pronames= pace, (SELECT rolname FROM pg_catalog.pg_roles WHERE oid =3D p.proowner) AS= rolname FROM pg_proc p LEFT JOIN pg_init_privs pip ON (p.oid =3D pip.objoi= d AND pip.classoid =3D 'pg_proc'::regclass AND pip.objsubid =3D 0) WHERE p.= prokind <> 'a' AND NOT EXISTS (SELECT 1 FROM pg_depend WHERE classid =3D 'pg_proc'::regc= lass AND objid =3D p.oid AND deptype =3D 'i') AND ( pronamespace !=3D (SELECT oid FROM pg_namespace WHERE nspname =3D 'pg_cat= alog') OR EXISTS (SELECT 1 FROM pg_cast WHERE pg_cast.oid > 16383=20 AND p.oid =3D pg_cast.castfunc) OR EXISTS (SELECT 1 FROM pg_transform WHERE pg_transform.oid > 16383 AND=20 (p.oid =3D pg_transform.trffromsql OR p.oid =3D pg_transform.trftosql)) OR p.proacl IS DISTINCT FROM pip.initprivs) Based on https://wiki.postgresql.org/wiki/Locale_data_changes I wrote: SELECT 'reindex index ' || indexrelid::regclass::text=20 FROM (SELECT indexrelid, indrelid, indcollation[i] coll FROM pg_index, gene= rate_subscripts(indcollation, 1) g(i)) s=20 JOIN pg_collation c ON coll=3Dc.oid WHERE collprovider IN ('d', 'c') AND collname NOT IN ('C', 'POSIX') \gexec and let it run (80k+ indexes). Afterwards - same problem. So I did "reindex system". And the query still fails. I tried running simple "select * from table", for each of: - pg_catalog.pg_roles - pg_catalog.pg_proc - pg_catalog.pg_init_privs - pg_catalog.pg_depend - pg_catalog.pg_namespace - pg_catalog.pg_cast - pg_catalog.pg_transform and it worked, so I'm kinda at loss here. I have test system, can test anything. Any idea on what could be the reason, and if the system is fixable afterwards? Ah, one more thing - straced backend when it was doing its thing. Last 50 l= ines: 15:01:31.229198 futex(0xfffe49b8cb3c, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229233 futex(0xfffe49b8c41c, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229268 futex(0xfffe49b8cdfc, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229303 futex(0xfffe49b8ce00, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229338 futex(0xfffe49b8ce08, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229379 futex(0xfffe49b8dde4, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229415 futex(0xfffe49b91524, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229450 futex(0xfffe49b8998c, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229485 futex(0xfffe49b8cf9c, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229521 futex(0xfffe49b882e4, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229556 futex(0xfffe49b8e548, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229596 futex(0xfffe49b8d75c, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229634 futex(0xfffe49b8cfe8, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229670 futex(0xfffe49b8dfe8, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229705 futex(0xfffe49b8dff0, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229740 futex(0xfffe49b8dff8, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229775 futex(0xfffe49b8ddf0, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229810 futex(0xfffe49b8e0a8, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229845 futex(0xfffe49b8e200, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229881 futex(0xfffe49b8e534, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229925 futex(0xfffe49b8e734, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229961 futex(0xfffe49b8e7dc, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.229998 futex(0xfffe49b8e924, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.230034 futex(0xfffe49b8ea6c, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.230070 futex(0xfffe49b8ea74, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.230105 futex(0xfffe49b91514, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.230141 futex(0xfffe49b8ad84, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.230177 futex(0xfffe49b91518, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.230212 futex(0xfffe49b9152c, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.230247 futex(0xfffe49b91530, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.230283 futex(0xfffe49b91718, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.230323 futex(0xfffe49b91720, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.230384 futex(0xfffe49b8e488, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000013> 15:01:31.230423 futex(0xfffe49b946cc, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.230464 futex(0xfffe49b884d4, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.230515 futex(0xfffe49b955c0, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.230624 futex(0xfffe49ba8738, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000013> 15:01:31.230678 futex(0xfffe49b91288, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000012> 15:01:31.231031 brk(0xaaaae513e000) =3D 0xaaaae513e000 <0.000016> 15:01:31.232480 brk(0xaaaae515f000) =3D 0xaaaae515f000 <0.000018> 15:01:31.239133 brk(0xaaaae5180000) =3D 0xaaaae5180000 <0.000019> 15:01:31.245463 brk(0xaaaae51a1000) =3D 0xaaaae51a1000 <0.000020> 15:01:31.245847 brk(0xaaaae51c2000) =3D 0xaaaae51c2000 <0.000016> 15:01:31.259644 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON= YMOUS, -1, 0) =3D 0xffff80da8000 <0.000025> 15:01:31.259705 mmap(NULL, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANO= NYMOUS, -1, 0) =3D 0xfffe4a36a000 <0.000014> 15:01:31.260012 futex(0xaaaae4f7fcf8, FUTEX_WAKE_PRIVATE, 2147483647) =3D 0= <0.000014> 15:01:31.260074 mprotect(0xfffe4a36a000, 36864, PROT_READ|PROT_EXEC) =3D 0 = <0.000017> 15:01:31.260120 mprotect(0xffff80da8000, 4096, PROT_READ|PROT_EXEC) =3D 0 <= 0.000013> 15:01:31.260165 --- SIGSEGV {si_signo=3DSIGSEGV, si_code=3DSEGV_MAPERR, si_= addr=3D0xfffd80da80a8} --- 15:01:31.451341 +++ killed by SIGSEGV (core dumped) +++ depesz