I found this in our logs, and reproduced it under v11-v16.

CREATE TABLE t(a int, b int);
INSERT INTO t SELECT generate_series(1,999);
CREATE STATISTICS t_stats ON a,b FROM t;

while :; do psql postgres -qtxc "ANALYZE t"; done &
while :; do psql postgres -qtxc "begin; DROP STATISTICS t_stats"; done &

It's known that concurrent DDL can hit elog().  But in this case,
there's only one DDL operation.

(gdb) bt
#0  0x00000000009442a0 in pg_re_throw ()
#1  0x0000000000943504 in errfinish ()
#2  0x00000000004fcafe in simple_heap_delete ()
#3  0x0000000000639d3f in RemoveStatisticsDataById ()
#4  0x0000000000639d79 in RemoveStatisticsById ()
#5  0x000000000057a428 in deleteObjectsInList ()
#6  0x000000000057a8f0 in performMultipleDeletions ()
#7  0x000000000060b5ed in RemoveObjects ()
#8  0x00000000008099ce in ProcessUtilitySlow.isra.1 ()
#9  0x0000000000808c71 in standard_ProcessUtility ()
#10 0x00007efbfed7a508 in pgss_ProcessUtility () from 
/usr/pgsql-16/lib/pg_stat_statements.so
#11 0x000000000080745a in PortalRunUtility ()
#12 0x0000000000807579 in PortalRunMulti ()
#13 0x00000000008079dc in PortalRun ()
#14 0x0000000000803927 in exec_simple_query ()
#15 0x0000000000803f28 in PostgresMain ()
#16 0x000000000077bae6 in ServerLoop ()
#17 0x000000000077cbaa in PostmasterMain ()
#18 0x00000000004ba788 in main ()

-- 
Justin


Reply via email to