Re: Non-reproducible AIO failure

From: Nico Williams <nico(at)cryptonector(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Konstantin Knizhnik <knizhnik(at)garret(dot)ru>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Non-reproducible AIO failure
Date: 2025-06-07 04:28:12
Message-ID: aEO/3F25PiFuoru6@ubby
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Jun 06, 2025 at 03:37:45PM -0400, Andres Freund wrote:
> On 2025-06-06 15:21:13 -0400, Tom Lane wrote:
> > So it's our code that is busted. No doubt, what is happening is
> > that process A is fetching two fields, modifying one of them,
> > and storing the word back (with the observed value of the other
> > field) concurrently with some other process trying to update
> > the other field. So the other process's update is lost.
>
> There shouldn't be any concurrent accesses here, so I don't really see
> how the above would explain the problem (the IO can only ever be
> modified by one backend, initially the "owning backend", then, when
> submitted, by the IO worker, and then again by the backend).

No concurrent accesses, not from threads anyways, but not even from
kernel subsystems nor from signal handlers?

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Konstantin Knizhnik 2025-06-07 04:32:43 Re: Non-reproducible AIO failure
Previous Message Alexander Lakhin 2025-06-07 04:00:00 Re: Non-reproducible AIO failure