AW: AW: Re: [SQL] possible row locking bug in 7.0.3 & 7 .1

From: Zeugswetter Andreas SB <ZeugswetterA(at)wien(dot)spardat(dot)at>
To: "'Tom Lane'" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "Mikheev, Vadim" <vmikheev(at)SECTORBASE(dot)COM>
Cc: "'Hiroshi Inoue'" <Inoue(at)tpf(dot)co(dot)jp>, Philip Warner <pjw(at)rhyme(dot)com(dot)au>, pgsql-hackers(at)postgresql(dot)org
Subject: AW: AW: Re: [SQL] possible row locking bug in 7.0.3 & 7 .1
Date: 2001-03-30 15:25:39
Message-ID: 11C1E6749A55D411A9670001FA687963368266@sdexcsrv1.f000.d0188.sd.spardat.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


> > It is intuitive. The bug was iirc, that you saw 2 versions of the same row
> > in the second select statement (= 2 rows returned by second select).
>
> I think we should be extremely wary of assuming that we have a clear
> characterization of "what the bug is", let alone "how to fix it".
> The real issue here is that SELECT has different MVCC visibility rules
> from UPDATE and SELECT FOR UPDATE. I suspect that that *must* be so
> in any mode that allows more concurrency than full serializable mode.

Yes, definitely.

> Thus, the question we are really facing is how we might alter the
> visibility rules in a way that will make the results more intuitive
> and/or useful while still allowing concurrency.
>
> This will take thought, research and discussion. A quick fix is the
> last thing that should be on our minds.

From my latest tests( see following post), I tend to agree, that this is
extremely sensitive :-(
I do however think that Vadim's patch description was the correct thing to do.

The problem case seems to be when the function is not executed inside a txn.
I was not able to reproduce any failure, when inside txns, since the first update
or select for update blocks the rest.

Andreas

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2001-03-30 15:28:33 RE: User administration tool
Previous Message Peter Eisentraut 2001-03-30 15:24:30 Re: [ADMIN] User administration tool