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

Поиск
Список
Период
Сортировка
От Rainer Tammer
Тема Re: Problem with PostgreSQL 9.2.7 and make check on AIX 7.1
Дата
Msg-id 53201578.3010609@spg.schulergroup.com
обсуждение исходный текст
Ответ на Re: Problem with PostgreSQL 9.2.7 and make check on AIX 7.1  (Rainer Tammer <pgsql@spg.schulergroup.com>)
Ответы Re: Problem with PostgreSQL 9.2.7 and make check on AIX 7.1  (Tom Lane <tgl@sss.pgh.pa.us>)
Список 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 по дате отправления:

Предыдущее
От: Rainer Tammer
Дата:
Сообщение: Re: Problem with PostgreSQL 9.2.7 and make check on AIX 7.1
Следующее
От: Sandeep Thakkar
Дата:
Сообщение: Re: HP-UX 11.31 Itanium2 64bit again