Re: Atomics for heap_parallelscan_nextpage()

From: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andres Freund <andres(at)anarazel(dot)de>
Cc: David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Amit Khandekar <amitdkhan(dot)pg(at)gmail(dot)com>, Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>
Subject: Re: Atomics for heap_parallelscan_nextpage()
Date: 2017-08-16 21:50:25
Message-ID: d37e3b5d-e7f4-62c1-701a-7af12dd4eece@iki.fi
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 08/17/2017 12:20 AM, Tom Lane wrote:
> Andres Freund <andres(at)anarazel(dot)de> writes:
>> On 2017-08-16 16:20:28 +0300, Heikki Linnakangas wrote:
>> + pg_atomic_write_u64(&target->phs_nallocated, 0);
>
>> It's not ok to initialize an atomic with pg_atomic_write_u64 - works
>> well enough for "plain" atomics, but the fallback implementation isn't
>> ok with it. You're probably going to get a failure on the respective
>> buildfarm animal soon.
>
> Indeed, gaur fails with
>
> 2017-08-16 17:09:38.315 EDT [13043:11] PANIC: stuck spinlock detected at pg_at\
> omic_compare_exchange_u64_impl, atomics.c:196
> 2017-08-16 17:09:38.315 EDT [13043:12] STATEMENT: select count(*) from a_star;
> 2017-08-16 17:09:40.350 EDT [12437:3] LOG: server process (PID 13043) was term\
> inated by signal 6
> 2017-08-16 17:09:40.350 EDT [12437:4] DETAIL: Failed process was running: sele\
> ct count(*) from a_star;
>
> and I'm sure pademelon will fail once it gets to that.

Fixed.

> I thought we had other buildfarm animals testing the fallback path,
> though?
Yes, at least piculet is building with --disable-atomics.

I was able to reproduce this locally, with --disable-atomics, but only
after hacking it to fill the struct with garbage, before initializing
it. IOW, it failed to fail, because the spinlock happened to be
initialized correctly by accident. Perhaps that's happening on piculet, too.

- Heikki

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2017-08-16 21:55:12 Re: Function to move the position of a replication slot
Previous Message Robert Haas 2017-08-16 21:34:59 Re: Hash Functions