Recent failures on buildfarm member hornet

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

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Noah Misch <noah@leadboat.com>
Cc: pgsql-hackers@lists.postgresql.org, David Rowley <dgrowleyml@gmail.com>
Date: 2020-10-06T00:42:15Z
Lists: pgsql-hackers
hornet has failed its last five runs with

2020-10-05 22:45:42.784 UTC [34734498:40] pg_regress/create_aggregate LOG:  statement: create aggregate my_percentile_disc(float8 ORDER BY anyelement) (
	  stype = internal,
	  sfunc = ordered_set_transition,
	  finalfunc = percentile_disc_final,
	  finalfunc_extra = true,
	  finalfunc_modify = read_write
	);
TRAP: FailedAssertion("variadicArgType != InvalidOid", File: "pg_aggregate.c", Line: 216, PID: 34734498)

After looking at the commits immediately preceding the first failure, and
digging around in the aggregate-related code, it seems like commit 
cc99baa43 (Improve pg_list.h's linitial(), lsecond() and co macros)
must've broke it somehow.  The nearest thing that I can see to a theory
is that where DefineAggregate does
		numDirectArgs = intVal(lsecond(args));
it's coming out with the wrong result, leading to a failure of the
numDirectArgs-vs-numArgs sanity check in AggregateCreate.  But how could
that be?  I hesitate to blame the compiler twice in one week.  OTOH, it's
a not-very-mainstream compiler on a not-very-mainstream architecture.

Noah, can you poke into this in a little more detail and try to verify
what is happening?

			regards, tom lane



Commits

  1. Fix optimization hazard in gram.y's makeOrderedSetArgs(), redux.

  2. Improve pg_list.h's linitial(), lsecond() and co macros