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