On Mon, Oct 03, 2022 at 07:53:34PM +0200, Tomas Vondra wrote: > On 9/29/22 08:53, Jaime Casanova wrote: > > ... > > > > Just found one more ocurrance of this one with this index while an > > autovacuum was running: > > > > """ > > CREATE INDEX bt_f8_heap_seqno_idx > > ON public.bt_f8_heap > > USING brin (seqno float8_minmax_multi_ops); > > """ > > Attached is a backtrace. > > Thanks for the report! > > I think I see the issue - brin_minmax_multi_union does not realize the > two summaries could have just one range each, and those can overlap so > that merge_overlapping_ranges combines them into a single one. > > This is harmless, except that the assert int build_distances is overly > strict. Not sure if we should just remove the assert or only compute the > distances with (neranges>1). > > Do you happen to have the core dump? It'd be useful to look at ranges_a > and ranges_b, to confirm this is indeed what's happening. >
I do have it. (gdb) p *ranges_a $4 = { typid = 701, colloid = 0, attno = 0, cmp = 0x0, nranges = 0, nsorted = 1, nvalues = 1, maxvalues = 32, target_maxvalues = 32, values = 0x55d2ea1987c8 } (gdb) p *ranges_b $5 = { typid = 701, colloid = 0, attno = 0, cmp = 0x0, nranges = 0, nsorted = 1, nvalues = 1, maxvalues = 32, target_maxvalues = 32, values = 0x55d2ea196da8 } -- Jaime Casanova Director de Servicios Profesionales SystemGuards - Consultores de PostgreSQL