Re: INSERT ... ON CONFLICT {UPDATE | IGNORE} 2.0 - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: INSERT ... ON CONFLICT {UPDATE | IGNORE} 2.0
Date
Msg-id 54D25CEC.6040601@vmware.com
Whole thread Raw
In response to Re: INSERT ... ON CONFLICT {UPDATE | IGNORE} 2.0  (Peter Geoghegan <pg@heroku.com>)
Responses Re: INSERT ... ON CONFLICT {UPDATE | IGNORE} 2.0
List pgsql-hackers
On 02/03/2015 08:17 PM, Peter Geoghegan wrote:
> On Tue, Feb 3, 2015 at 2:05 AM, Heikki Linnakangas
> <hlinnakangas@vmware.com> wrote:
>> TRAP: FailedAssertion("!(node->spec != SPEC_INSERT || node->arbiterIndex !=
>> ((Oid) 0))", File: "nodeModifyTable.c", Line: 1619)
>>
>> Is that just because of the hack in parse_clause.c?
>
> Yes. I never built with assertions and so didn't see this, but it
> doesn't matter.
>
>> With assertions disabled, count_upsert_exclusion.pl ran successfully to the
>> end. I also tried running "VACUUM FREEZE upsert_race_test" in a loop in
>> another session at the same time, but it didn't make a difference. How
>> quickly do you see the errors?
>>
>> I also tried applying crash_REL9_5.patch from the jjanes_upsert kit, and set
>> jj_xid=10000 to increase XID burn rate, but I'm still not seeing any errors.
>
> Did you build fully optimized, assertion-free code? I've been doing
> that. I found it necessary to recreate some of the bugs Jeff's tool
> caught. I also think that I might have needed an 8 core box to see it,
> but less sure about that.

I had compiled with -O0, but without assertions. I tried now again with 
-O3. It's been running for about 10 minutes now, and I haven't seen any 
errors.

Since you can reproduce this, it would be good if you could debug this. 
The error message where the alleged duplicate key actually had a 
different value is a bit scary. Makes me wonder if it might be a bug 
with exclusion constraints in general, or just with the patch.

- Heikki




pgsql-hackers by date:

Previous
From: Magnus Hagander
Date:
Subject: Re:
Next
From: Peter Geoghegan
Date:
Subject: Re: INSERT ... ON CONFLICT {UPDATE | IGNORE} 2.0