Re: Problem with PostgreSQL 9.2.7 and make check on AIX 7.1 - Mailing list pgsql-bugs
From | Rainer Tammer |
---|---|
Subject | Re: Problem with PostgreSQL 9.2.7 and make check on AIX 7.1 |
Date | |
Msg-id | 53201578.3010609@spg.schulergroup.com Whole thread Raw |
In response to | Re: Problem with PostgreSQL 9.2.7 and make check on AIX 7.1 (Rainer Tammer <pgsql@spg.schulergroup.com>) |
Responses |
Re: Problem with PostgreSQL 9.2.7 and make check on AIX 7.1
|
List | pgsql-bugs |
Hello, it looks like these failures are caused by compiler optimizations -O2. Without optimization the random failures do not show up. Bye Rainer On 12.03.2014 08:13, Rainer Tammer wrote: > Hello, > I am currently checking the hang problem with IBM. > > The have found some other test failures on AXI 7.1 TL2: > They do not see the hang on TL2 but instead they see the > following test errors. I do not see these errors in AIX 6.1 TL8 > or AIX 7.1 TL3 (with prepared_xacts and plpgsql removed). > > Any ideas? I have attached the diff file for better readability. > > *** /stuff/postgresql-9.2.7/src/test/regress/expected/inherit.out Mon > Feb 17 13:38:15 2014 > --- /stuff/postgresql-9.2.7/src/test/regress/results/inherit.out Tue > Mar 11 16:55:26 2014 > *************** > *** 576,592 **** > from > ( select f1 from foo union all select f1+3 from foo ) ss > where bar.f1 = ss.f1; > select tableoid::regclass::text as relname, bar.* from bar order by 1,2; > relname | f1 | f2 > ---------+----+----- > ! bar | 1 | 201 > ! bar | 2 | 202 > ! bar | 3 | 203 > ! bar | 4 | 104 > ! bar2 | 1 | 201 > ! bar2 | 2 | 202 > ! bar2 | 3 | 203 > ! bar2 | 4 | 104 > (8 rows) > > /* Test multiple inheritance of column defaults */ > --- 576,593 ---- > from > ( select f1 from foo union all select f1+3 from foo ) ss > where bar.f1 = ss.f1; > + ERROR: rel 5 already exists > select tableoid::regclass::text as relname, bar.* from bar order by 1,2; > relname | f1 | f2 > ---------+----+----- > ! bar | 1 | 101 > ! bar | 2 | 102 > ! bar | 3 | 103 > ! bar | 4 | 4 > ! bar2 | 1 | 101 > ! bar2 | 2 | 102 > ! bar2 | 3 | 103 > ! bar2 | 4 | 4 > (8 rows) > > /* Test multiple inheritance of column defaults */ > *************** > *** 1391,1427 **** > (SELECT unique1 AS x FROM tenk1 a > UNION ALL > SELECT unique2 AS x FROM tenk1 b) s; > ! QUERY PLAN > ! -------------------------------------------------------------------- > ! Result > ! InitPlan 1 (returns $0) > ! -> Limit > ! -> Merge Append > ! Sort Key: a.unique1 > ! -> Index Only Scan using tenk1_unique1 on tenk1 a > ! Index Cond: (unique1 IS NOT NULL) > ! -> Index Only Scan using tenk1_unique2 on tenk1 b > ! Index Cond: (unique2 IS NOT NULL) > ! (9 rows) > ! > explain (costs off) > SELECT min(y) FROM > (SELECT unique1 AS x, unique1 AS y FROM tenk1 a > UNION ALL > SELECT unique2 AS x, unique2 AS y FROM tenk1 b) s; > ! QUERY PLAN > ! -------------------------------------------------------------------- > ! Result > ! InitPlan 1 (returns $0) > ! -> Limit > ! -> Merge Append > ! Sort Key: a.unique1 > ! -> Index Only Scan using tenk1_unique1 on tenk1 a > ! Index Cond: (unique1 IS NOT NULL) > ! -> Index Only Scan using tenk1_unique2 on tenk1 b > ! Index Cond: (unique2 IS NOT NULL) > ! (9 rows) > ! > -- XXX planner doesn't recognize that index on unique2 is sufficiently > sorted > explain (costs off) > SELECT x, y FROM > --- 1392,1404 ---- > (SELECT unique1 AS x FROM tenk1 a > UNION ALL > SELECT unique2 AS x FROM tenk1 b) s; > ! ERROR: rel 4 already exists > explain (costs off) > SELECT min(y) FROM > (SELECT unique1 AS x, unique1 AS y FROM tenk1 a > UNION ALL > SELECT unique2 AS x, unique2 AS y FROM tenk1 b) s; > ! ERROR: rel 4 already exists > -- XXX planner doesn't recognize that index on unique2 is sufficiently > sorted > explain (costs off) > SELECT x, y FROM > *************** > *** 1429,1445 **** > UNION ALL > SELECT unique2 AS x, unique2 AS y FROM tenk1 b) s > ORDER BY x, y; > ! QUERY PLAN > ! ------------------------------------------------------------------- > ! Result > ! -> Merge Append > ! Sort Key: a.thousand, a.tenthous > ! -> Index Only Scan using tenk1_thous_tenthous on tenk1 a > ! -> Sort > ! Sort Key: b.unique2, b.unique2 > ! -> Index Only Scan using tenk1_unique2 on tenk1 b > ! (7 rows) > ! > reset enable_seqscan; > reset enable_indexscan; > reset enable_bitmapscan; > --- 1406,1412 ---- > UNION ALL > SELECT unique2 AS x, unique2 AS y FROM tenk1 b) s > ORDER BY x, y; > ! ERROR: rel 4 already exists > reset enable_seqscan; > reset enable_indexscan; > reset enable_bitmapscan; > > ====================================================================== > > *** /stuff/postgresql-9.2.7/src/test/regress/expected/union.out Mon > Feb 17 13:38:15 2014 > --- /stuff/postgresql-9.2.7/src/test/regress/results/union.out Tue > Mar 11 16:55:32 2014 > *************** > *** 474,489 **** > UNION ALL > SELECT * FROM t2) t > WHERE ab = 'ab'; > ! QUERY PLAN > ! --------------------------------------------------- > ! Result > ! -> Append > ! -> Index Scan using t1_ab_idx on t1 > ! Index Cond: ((a || b) = 'ab'::text) > ! -> Index Only Scan using t2_pkey on t2 > ! Index Cond: (ab = 'ab'::text) > ! (6 rows) > ! > explain (costs off) > SELECT * FROM > (SELECT a || b AS ab FROM t1 > --- 474,480 ---- > UNION ALL > SELECT * FROM t2) t > WHERE ab = 'ab'; > ! ERROR: rel 4 already exists > explain (costs off) > SELECT * FROM > (SELECT a || b AS ab FROM t1 > *************** > *** 510,522 **** > UNION ALL > SELECT 2 AS t, * FROM tenk1 b) c > WHERE t = 2; > ! QUERY PLAN > ! --------------------------------- > ! Result > ! -> Append > ! -> Seq Scan on tenk1 b > ! (3 rows) > ! > -- Test that we push quals into UNION sub-selects only when it's safe > explain (costs off) > SELECT * FROM > --- 501,507 ---- > UNION ALL > SELECT 2 AS t, * FROM tenk1 b) c > WHERE t = 2; > ! ERROR: rel 4 already exists > -- Test that we push quals into UNION sub-selects only when it's safe > explain (costs off) > SELECT * FROM > *************** > *** 617,641 **** > select * from > (select * from t3 a union all select * from t3 b) ss > join int4_tbl on f1 = expensivefunc(x); > ! QUERY PLAN > ! ------------------------------------------------------------ > ! Nested Loop > ! -> Seq Scan on int4_tbl > ! -> Append > ! -> Index Scan using t3i on t3 a > ! Index Cond: (expensivefunc(x) = int4_tbl.f1) > ! -> Index Scan using t3i on t3 b > ! Index Cond: (expensivefunc(x) = int4_tbl.f1) > ! (7 rows) > ! > select * from > (select * from t3 a union all select * from t3 b) ss > join int4_tbl on f1 = expensivefunc(x); > ! x | f1 > ! ---+---- > ! 0 | 0 > ! 0 | 0 > ! (2 rows) > ! > drop table t3; > drop function expensivefunc(int); > --- 602,611 ---- > select * from > (select * from t3 a union all select * from t3 b) ss > join int4_tbl on f1 = expensivefunc(x); > ! ERROR: rel 6 already exists > select * from > (select * from t3 a union all select * from t3 b) ss > join int4_tbl on f1 = expensivefunc(x); > ! ERROR: rel 6 already exists > drop table t3; > drop function expensivefunc(int); > > ====================================================================== > > *** > /stuff/postgresql-9.2.7/src/test/regress/expected/security_label.out > Tue Mar 11 16:53:52 2014 > --- > /stuff/postgresql-9.2.7/src/test/regress/results/security_label.out > Tue Mar 11 16:55:37 2014 > *************** > *** 92,110 **** > SECURITY LABEL ON SCHEMA seclabel_test IS 'unclassified'; -- OK > SELECT objtype, objname, provider, label FROM pg_seclabels > ORDER BY objtype, objname; > ! objtype | objname | provider | label > ! ----------+-----------------+----------+-------------- > ! column | seclabel_tbl1.a | dummy | unclassified > ! domain | seclabel_domain | dummy | classified > ! function | seclabel_four() | dummy | classified > ! role | seclabel_user1 | dummy | classified > ! role | seclabel_user2 | dummy | unclassified > ! schema | seclabel_test | dummy | unclassified > ! table | seclabel_tbl1 | dummy | top secret > ! table | seclabel_tbl2 | dummy | classified > ! view | seclabel_view1 | dummy | classified > ! (9 rows) > ! > -- clean up objects > DROP FUNCTION seclabel_four(); > DROP DOMAIN seclabel_domain; > --- 92,98 ---- > SECURITY LABEL ON SCHEMA seclabel_test IS 'unclassified'; -- OK > SELECT objtype, objname, provider, label FROM pg_seclabels > ORDER BY objtype, objname; > ! ERROR: rel 16 already exists > -- clean up objects > DROP FUNCTION seclabel_four(); > DROP DOMAIN seclabel_domain; > *************** > *** 117,123 **** > -- make sure we don't have any leftovers > SELECT objtype, objname, provider, label FROM pg_seclabels > ORDER BY objtype, objname; > ! objtype | objname | provider | label > ! ---------+---------+----------+------- > ! (0 rows) > ! > --- 105,108 ---- > -- make sure we don't have any leftovers > SELECT objtype, objname, provider, label FROM pg_seclabels > ORDER BY objtype, objname; > ! ERROR: rel 16 already exists > > ====================================================================== > > *** > /stuff/postgresql-9.2.7/src/test/regress/expected/foreign_data.out > Mon Feb 17 13:38:15 2014 > --- /stuff/postgresql-9.2.7/src/test/regress/results/foreign_data.out > Tue Mar 11 16:55:46 2014 > *************** > *** 900,922 **** > (7 rows) > > SELECT * FROM information_schema.usage_privileges WHERE object_type > LIKE 'FOREIGN%' AND object_name IN ('s6', 'foo') ORDER BY 1, 2, 3, 4, 5; > ! grantor | grantee | object_catalog | > object_schema | object_name | object_type | privilege_type | > is_grantable > ! > -------------------+-----------------------+----------------+---------------+-------------+----------------------+----------------+-------------- > ! foreign_data_user | foreign_data_user | regression > | | foo | FOREIGN DATA WRAPPER | USAGE | YES > ! foreign_data_user | foreign_data_user | regression > | | s6 | FOREIGN SERVER | USAGE | YES > ! foreign_data_user | regress_test_indirect | regression > | | foo | FOREIGN DATA WRAPPER | USAGE | NO > ! foreign_data_user | regress_test_role2 | regression > | | s6 | FOREIGN SERVER | USAGE | YES > ! (4 rows) > ! > SELECT * FROM information_schema.role_usage_grants WHERE object_type > LIKE 'FOREIGN%' AND object_name IN ('s6', 'foo') ORDER BY 1, 2, 3, 4, 5; > ! grantor | grantee | object_catalog | > object_schema | object_name | object_type | privilege_type | > is_grantable > ! > -------------------+-----------------------+----------------+---------------+-------------+----------------------+----------------+-------------- > ! foreign_data_user | foreign_data_user | regression > | | foo | FOREIGN DATA WRAPPER | USAGE | YES > ! foreign_data_user | foreign_data_user | regression > | | s6 | FOREIGN SERVER | USAGE | YES > ! foreign_data_user | regress_test_indirect | regression > | | foo | FOREIGN DATA WRAPPER | USAGE | NO > ! foreign_data_user | regress_test_role2 | regression > | | s6 | FOREIGN SERVER | USAGE | YES > ! (4 rows) > ! > SELECT * FROM information_schema.foreign_tables ORDER BY 1, 2, 3; > foreign_table_catalog | foreign_table_schema | foreign_table_name | > foreign_server_catalog | foreign_server_name > > -----------------------+----------------------+--------------------+------------------------+--------------------- > --- 900,908 ---- > (7 rows) > > SELECT * FROM information_schema.usage_privileges WHERE object_type > LIKE 'FOREIGN%' AND object_name IN ('s6', 'foo') ORDER BY 1, 2, 3, 4, 5; > ! ERROR: could not open relation with OID 0 > SELECT * FROM information_schema.role_usage_grants WHERE object_type > LIKE 'FOREIGN%' AND object_name IN ('s6', 'foo') ORDER BY 1, 2, 3, 4, 5; > ! ERROR: could not open relation with OID 0 > SELECT * FROM information_schema.foreign_tables ORDER BY 1, 2, 3; > foreign_table_catalog | foreign_table_schema | foreign_table_name | > foreign_server_catalog | foreign_server_name > > -----------------------+----------------------+--------------------+------------------------+--------------------- > *************** > *** 943,961 **** > (5 rows) > > SELECT * FROM information_schema.usage_privileges WHERE object_type > LIKE 'FOREIGN%' AND object_name IN ('s6', 'foo') ORDER BY 1, 2, 3, 4, 5; > ! grantor | grantee | object_catalog | > object_schema | object_name | object_type | privilege_type | > is_grantable > ! > -------------------+-----------------------+----------------+---------------+-------------+----------------------+----------------+-------------- > ! foreign_data_user | regress_test_indirect | regression > | | foo | FOREIGN DATA WRAPPER | USAGE | NO > ! foreign_data_user | regress_test_role2 | regression > | | s6 | FOREIGN SERVER | USAGE | YES > ! (2 rows) > ! > SELECT * FROM information_schema.role_usage_grants WHERE object_type > LIKE 'FOREIGN%' AND object_name IN ('s6', 'foo') ORDER BY 1, 2, 3, 4, 5; > ! grantor | grantee | object_catalog | > object_schema | object_name | object_type | privilege_type | > is_grantable > ! > -------------------+-----------------------+----------------+---------------+-------------+----------------------+----------------+-------------- > ! foreign_data_user | regress_test_indirect | regression > | | foo | FOREIGN DATA WRAPPER | USAGE | NO > ! foreign_data_user | regress_test_role2 | regression > | | s6 | FOREIGN SERVER | USAGE | YES > ! (2 rows) > ! > DROP USER MAPPING FOR current_user SERVER t1; > SET ROLE regress_test_role2; > SELECT * FROM information_schema.user_mapping_options ORDER BY 1, 2, 3, 4; > --- 929,937 ---- > (5 rows) > > SELECT * FROM information_schema.usage_privileges WHERE object_type > LIKE 'FOREIGN%' AND object_name IN ('s6', 'foo') ORDER BY 1, 2, 3, 4, 5; > ! ERROR: rel 11 already exists > SELECT * FROM information_schema.role_usage_grants WHERE object_type > LIKE 'FOREIGN%' AND object_name IN ('s6', 'foo') ORDER BY 1, 2, 3, 4, 5; > ! ERROR: rel 14 already exists > DROP USER MAPPING FOR current_user SERVER t1; > SET ROLE regress_test_role2; > SELECT * FROM information_schema.user_mapping_options ORDER BY 1, 2, 3, 4; > > ====================================================================== > > *** /stuff/postgresql-9.2.7/src/test/regress/expected/window.out Mon > Feb 17 13:38:15 2014 > --- /stuff/postgresql-9.2.7/src/test/regress/results/window.out Tue > Mar 11 16:55:44 2014 > *************** > *** 957,966 **** > > -- with UNION > SELECT count(*) OVER (PARTITION BY four) FROM (SELECT * FROM tenk1 > UNION ALL SELECT * FROM tenk2)s LIMIT 0; > ! count > ! ------- > ! (0 rows) > ! > -- ordering by a non-integer constant is allowed > SELECT rank() OVER (ORDER BY length('abc')); > rank > --- 957,963 ---- > > -- with UNION > SELECT count(*) OVER (PARTITION BY four) FROM (SELECT * FROM tenk1 > UNION ALL SELECT * FROM tenk2)s LIMIT 0; > ! ERROR: rel 4 already exists > -- ordering by a non-integer constant is allowed > SELECT rank() OVER (ORDER BY length('abc')); > rank > > ====================================================================== > > *** /stuff/postgresql-9.2.7/src/test/regress/expected/with.out Mon > Feb 17 13:38:15 2014 > --- /stuff/postgresql-9.2.7/src/test/regress/results/with.out Tue Mar > 11 16:55:57 2014 > *************** > *** 384,396 **** > (SELECT 2 AS i UNION ALL SELECT 3 AS i) AS t2 > JOIN t ON (t2.i = t.i+1)) > SELECT * FROM t; > ! i | j > ! ---+--- > ! 1 | 2 > ! 2 | 3 > ! 3 | 4 > ! (3 rows) > ! > -- > -- different tree example > -- > --- 384,390 ---- > (SELECT 2 AS i UNION ALL SELECT 3 AS i) AS t2 > JOIN t ON (t2.i = t.i+1)) > SELECT * FROM t; > ! ERROR: rel 6 already exists > -- > -- different tree example > -- > > ====================================================================== > > > > Bye > Rainer > > On 04.03.2014 17:21, Rainer Tammer wrote: >> Hello, >> the problem has reached the development support at IBM. >> >> As soon as I have a solution for the problem I will setup a build farm >> member (hopefully). >> >> I can probably smoke HEAD on AIX 7.1 and 6.1. >> >> Bye >> Rainer >> >> On 27.02.2014 08:21, Rainer Tammer wrote: >>> Hello, >>> I have checked this: >>> >>> >From prepared_xacts: >>> >>> LOG: Send kill to PID: 11731118 >>> LOG: Retrun value of kill PID: ret= 0 >>> >>> From: plpgsql >>> >>> LOG: Send kill to PID: 11731120 >>> LOG: Retrun value of kill PID: ret= 0 >>> >>> A kill -2 on the shell does not stop the backend process. >>> A kill -15 does stop the backend process. >>> >>> So the kill does not return a failure. >>> >>> The code in /src/backend/storage/lmgr/proc.c - CheckStatementTimeout() >>> of 8.4.20 >>> does not look much different. The code in pqsignal.c is also the not >>> really different. >>> >>> Bye >>> Rainer >>> >>> On 26.02.2014 18:00, Tom Lane wrote: >>>> Rainer Tammer <pgsql@spg.schulergroup.com> writes: >>>>> So we can be pretty sure that the SIGINT does not interrupt semop() on >>>>> AIX 71. >>>> Looks that way :-(. It would be interesting to add a check to see if the >>>> kill() is returning a failure indication or not. The existing code >>>> doesn't bother because there's not really anything it can do about it, >>>> but for this purpose it would be good to know. >>>> >>>> regards, tom lane >>>> >>>> >> > >
pgsql-bugs by date: