pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Alexander Lakhin <exclusion@gmail.com>
To: Álvaro Herrera <alvherre@kurilemu.de>
To: Mihail Nikalayeu <mihailnikalayeu@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>
Cc: Noah Misch <noah@leadboat.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Subject: Re: Issues with ON CONFLICT UPDATE and REINDEX CONCURRENTLY
Date: Fri, 16 Jan 2026 22:00:00 +0200
Message-ID: <e5a8c1df-04e5-4343-85ef-5df2a7e3d90c@gmail.com> (raw)
In-Reply-To: <202512111958.6ymanstmexrk@alvherre.pgsql>
References: <202512111958.6ymanstmexrk@alvherre.pgsql>

Hello Alvaro and Mihail,

11.12.2025 22:04, Álvaro Herrera wrote:
> On 2025-Dec-09, Mihail Nikalayeu wrote:
>
>> After some investigation I ended up with a much simpler fix.
>> It is self-explanatory in code and a commit message.
> Yeah, that makes sense.  It's what I was trying to say in
> https://postgr.es/m/202512072050.hcyysny65ugj@alvherre.pgsql
> Pushed your patch, thanks.

Thank you for fixing that once again! But it looks like the
"invalid arbiter index list" error is still not completely gone. It was
produced recently by new 010_index_concurrently_upsert test [1]:
364/364 postgresql:test_misc / test_misc/010_index_concurrently_upsert ERROR            22.47s   exit status 29

010_index_concurrently_upsert_node.log contains:
2026-01-08 12:59:26.336 CET [1265129][client backend][74/5:0] ERROR:  invalid arbiter index list
2026-01-08 12:59:26.336 CET [1265129][client backend][74/5:0] STATEMENT:  INSERT INTO test.tblparted VALUES (13, now()) 
ON CONFLICT (i) DO UPDATE SET updated_at = now();

I'm able to reproduce it locally when running 10+ instances of the test
in parallel on a pretty slow machine:
...
1       [18:46:52]
1       All tests successful.
1       Files=1, Tests=68, 36 wallclock secs ( 0.53 usr  0.03 sys + 4.06 cusr  3.38 csys =  8.00 CPU)
1       Result: PASS
3       [18:49:23] t/010_index_concurrently_upsert.pl ..
3       Dubious, test returned 29 (wstat 7424, 0x1d00)
3       Failed 1/45 subtests
3       [18:49:23]
3
3       Test Summary Report
3       -------------------
3       t/010_index_concurrently_upsert.pl (Wstat: 7424 (exited 29) Tests: 45 Failed: 1)
3         Failed test:  45
3         Non-zero exit status: 29
3         Parse errors: No plan found in TAP output
3       Files=1, Tests=45, 186 wallclock secs ( 0.40 usr  0.03 sys + 14.82 cusr 16.18 csys = 31.43 CPU)
3       Result: FAIL

With the more verbose error message, I can see:
src/test/modules/test_misc_3/tmp_check/log/010_index_concurrently_upsert_node.log:
2026-01-16 18:46:39.367 UTC [postgres][2047103:8][client backend] [010_index_concurrently_upsert.pl][74/5:0] ERROR:  
invalid arbiter index list: list_length(rootResultRelInfo->ri_onConflictArbiterIndexes): 1, list_length(arbiterIndexes): 
2, additional_arbiters: 0
The numbers are the same from three failures in a row I observed.

(I can add more debugging and dig deeper, if needed.)

[1] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=adder&dt=2026-01-08%2011%3A55%3A58

Best regards,
Alexander

view thread (105+ messages)  latest in thread

Message-ID: <e5a8c1df-04e5-4343-85ef-5df2a7e3d90c@gmail.com>
Permalink:  ../e5a8c1df-04e5-4343-85ef-5df2a7e3d90c@gmail.com/
Also on:    postgresql.org/message-id/e5a8c1df-04e5-4343-85ef-5df2a7e3d90c@gmail.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: exclusion@gmail.com, alvherre@kurilemu.de, mihailnikalayeu@gmail.com, michael@paquier.xyz, noah@leadboat.com
  Subject: Re: Issues with ON CONFLICT UPDATE and REINDEX CONCURRENTLY
  In-Reply-To: <e5a8c1df-04e5-4343-85ef-5df2a7e3d90c@gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox