Re: [COMMITTERS] pgsql: Add amcheck extension to contrib.

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgreSQL.org
Date: 2017-03-13T19:45:01Z
Lists: pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> Add amcheck extension to contrib.

axolotl just failed on this:
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=axolotl&dt=2017-03-13%2017%3A49%3A24

***************
*** 78,86 ****
  
  -- make sure we don't have any leftover locks
  SELECT * FROM pg_locks WHERE relation IN ('bttest_a_idx'::regclass, 'bttest_b_idx'::regclass);
!  locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid | mode | granted | fastpath 
! ----------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+-----+------+---------+----------
! (0 rows)
  
  COMMIT;
  -- cleanup
--- 78,87 ----
  
  -- make sure we don't have any leftover locks
  SELECT * FROM pg_locks WHERE relation IN ('bttest_a_idx'::regclass, 'bttest_b_idx'::regclass);
!  locktype | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction |  pid  |      mode       | granted | fastpath 
! ----------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+-------+-----------------+---------+----------
!  relation |    57562 |    57573 |      |       |            |               |         |       |          | 4/29               | 20342 | AccessShareLock | t       | t
! (1 row)
  
  COMMIT;
  -- cleanup


I could be wrong, but the most obvious explanation for this failure is
that autovacuum had a lock on the table or index when we looked.
Even if that isn't why axolotl failed in this particular case, I think
it's dead certain that we will see such failures from time to time
if this test script isn't tightened up.  IIUC what the test is trying
to look for, I think adding "AND pid = pg_backend_pid()" to this query
would be an appropriate fix.

			regards, tom lane


Commits

  1. amcheck: Harden tests against concurrent autovacuums.

  2. Add amcheck extension to contrib.