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 53200937.90909@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,
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
>>>
>>>
>>
>
>


Attachment

pgsql-bugs by date:

Previous
From: "H.Merijn Brand"
Date:
Subject: Re: HP-UX 11.31 Itanium2 64bit again
Next
From: Rainer Tammer
Date:
Subject: Re: Problem with PostgreSQL 9.2.7 and make check on AIX 7.1