Re: Event trigger bugs (was Re: Repeated crashes in GENERATED ... AS IDENTITY tests)

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2018-04-19T22:02:12Z
Lists: pgsql-hackers
Tom Lane wrote:

> Hence, two questions:
> 
> * Should EventTriggerTableRewrite do
> 
>     if (!currentEventTriggerState ||
>         currentEventTriggerState->commandCollectionInhibited)
>         return;
> 
> like most of the other functions, or should it just check for null
> currentEventTriggerState?

I vaguely recall that commandCollectionInhibited is to hide internal
queries launched via SPI by matview REFRESH CONCURRENTLY.  I'm not sure
if refresh involves a table rewrite that could trigger the bug here, but
I'd be consistent about it.

I don't know the answer to the second question.

> The point that running fast_default in parallel with a pile of other
> regression tests is damfool test design still stands, but I have to
> credit it with having exposed a bug.

Indubitably.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Commits

  1. Don't run fast_default regression test in parallel with other tests.

  2. Fix race conditions when an event trigger is added concurrently with DDL.