Re: Problem with PostgreSQL 9.2.7 and make check on AIX 7.1

From: Rainer Tammer <pgsql(at)spg(dot)schulergroup(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-bugs(at)postgresql(dot)org, cbbrowne(at)gmail(dot)com
Subject: Re: Problem with PostgreSQL 9.2.7 and make check on AIX 7.1
Date: 2014-03-12 08:06:16
Message-ID: 53201578.3010609@spg.schulergroup.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)spg(dot)schulergroup(dot)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
>>>>
>>>>
>>
>
>

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Sandeep Thakkar 2014-03-12 09:16:57 Re: HP-UX 11.31 Itanium2 64bit again
Previous Message Rainer Tammer 2014-03-12 07:13:59 Re: Problem with PostgreSQL 9.2.7 and make check on AIX 7.1